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

126 node.js express

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

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

Error: ENOENT, stat './path/to/file'
Run Code Online (Sandbox Code Playgroud)

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

有什么想法吗?

log*_*yth 186

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

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

var path = require('path');

path.join(__dirname, 'path/to/file')
Run Code Online (Sandbox Code Playgroud)

或潜在的

path.join(__dirname, 'path', 'to', 'file')
Run Code Online (Sandbox Code Playgroud)

  • 谢谢; 对于新手来说,有时像文件这样的小东西很难找到(就像我一样!). (11认同)

小智 5

这里是使用app.js的代码

input指定文件名

res.download(__dirname+'/'+input);
Run Code Online (Sandbox Code Playgroud)