Js,不能打开文件。错误: ENOENT,stat’./path/to/file’

我已经开发了一个 node.js 程序,它使用了我电脑上的 Express 框架,运行良好,没有抱怨。

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

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

I have checked that the file permissions are correct, which they are. My computer and my appliance are running different versions of node, if this matters.

有什么想法吗?

162566 次浏览

使用 .指定的路径是相对于当前工作目录的,而不是相对于脚本文件的。因此,如果运行 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')

下面是使用 app.js 的代码

Input 指定文件名

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