我正试图读取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操作系统上不起作用。任何评论在这里将是感激的!