为什么__dirname不返回绝对目录路径?



我正试图读取fs.readFileSync的文件,我遇到了一些问题,找到该文件与__dirname。这是我的目录结构:

/Users
/me
/Documents
/myapp
/services
/myapp (node app here)
/server
/templates
/docx
-word2016_tpl.docx
/methods
/documents
-fetchDocument.ts

我正试图从fetchDocument.ts读取文件word2016_tpl.docx。当我以静态字符串的形式读取文件时,一切都运行良好。像这样:

const buff = fs.readFileSync(
'/Users/me/Documents/myapp/services/myapp/server/templates/docx/word2016_tpl.docx'
);

然而,显然上面不是一个好的做法,所以我试图使用__dirname动态生成文件路径。

fetchDocument.ts中,我有:

console.log('current directory: ', __dirname);
// current directory:  /server/methods/documents

我的问题是,前面的/Users/me/Documents/myapp/services/myapp/在哪里,我如何访问它?

编辑:

我也试过用fs.readFileSync('/server/templates/docx/word2016_tpl.docx')读取文件,那不起作用

我发现了这个问题/答案:从正在运行的node.js应用程序中确定项目根

我能够通过使用process.env.PWD获得根路径并将其与相对路径/server/templates/docx/word2016_tpl.docx连接来解决我的问题

又名

const absolutePath = path.join(appRoot, relativePath);
const buff = fs.readFileSync(absolutePath);

希望这有效。我读到process.env.PWD有几个问题,比如它在windows操作系统上不起作用。任何评论在这里将是感激的!

相关内容

  • 没有找到相关文章

最新更新