0

所以我知道fs模块使用process.cwd()而不是模块的实际位置,但我仍然对文件路径有一点问题。

所以我有一个这样的应用程序结构:

- app
   - controllers
   - models
   - views
   - tmp
   - index.js

我正在控制器中创建 csv 文件,并希望将其存储在tmp.

所以考虑到尽管在控制器中,

process.cwd() is '/app'

我这样做了:

fs.open('tmp/FILENAME','w',function (err,fd) {

err 为空,因此似乎工作正常。所以应该在 /app/tmp/

另一方面,在 index.js 我有

res.attachment(__dirname + '/tmp/FILENAME')

当 console.logged 是

/app/tmp/FILENAME

哪个是对的。很明显,另一半是造成问题的原因。

所以我的问题是-考虑到 process.cwd() 在这种情况下使用 fs 的正确方法是什么? 有点难过,有什么想法吗?

4

1 回答 1

1

依赖process.cwd()是有风险的,你稍后介绍的其他一些代码可能会改变它。

使用__dirname + '/tmp/FILENAME'更安全。

于 2013-02-08T21:54:12.823 回答