Node.js,无法打开文件。错误:ENOENT,stat'。/ path / to / file'

时间:2012-11-24 14:03:56

标签: node.js express

我已经在我的计算机上使用快速框架开发了一个node.js程序,它在没有任何投诉的情况下运行良好。

但是,当我在我的SUSE Studio设备上运行该程序时,我会在任何文件交互中收到错误。

Error: ENOENT, stat './path/to/file'

我已检查过文件权限是否正确。如果这很重要,我的计算机和我的设备正在运行不同版本的节点。

有什么想法?

2 个答案:

答案 0 :(得分:184)

使用.指定的路径相对于当前工作目录,而不是相对于脚本文件。因此,如果您运行node app.js,则可能会找到该文件,但如果您运行node folder/app.js则不会找到该文件。唯一的例外是require('./file'),这是唯一可能的,因为每个模块存在require,因此知道从哪个模块调用它。

要创建相对于脚本的路径,必须使用__dirname变量。

var path = require('path');

path.join(__dirname, 'path/to/file')

或可能

path.join(__dirname, 'path', 'to', 'file')

答案 1 :(得分:5)

这里是使用app.js的代码

输入指定文件名

res.download(__dirname+'/'+input);