所以我知道fs
模块使用process.cwd()
而不是模块的实际位置,但我对文件路径仍有一点问题。
所以我有一个像这样的app结构:
- app
- controllers
- models
- views
- tmp
- index.js
我正在控制器中创建csv文件,并希望将其存储在tmp
中。
所以考虑到尽管是在控制器中,
process.cwd() is '/app'
我这样做了:
fs.open('tmp/FILENAME','w',function (err,fd) {
错误为空,因此似乎工作正常。所以这应该在/ app / tmp /
中另一方面,在index.js中我有
res.attachment(__dirname + '/tmp/FILENAME')
当console.logged是
时/app/tmp/FILENAME
这是正确的。很明显,另一半导致了这个问题。
所以我的问题是 - 在这种情况下使用fs的正确方法是什么,考虑到process.cwd()? 有点难过,有什么想法吗?
答案 0 :(得分:1)
依赖process.cwd()
是有风险的,稍后介绍的其他一些代码可能会改变它。
使用__dirname + '/tmp/FILENAME'
更安全。