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

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

但是,当我在我的SUSE Studio应用装置上运行该程序时,我将在任何文件交互中收到错误消息。

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

我已经检查过,文件权限是正确的,他们是。 如果这个问题很重要的话,我的电脑和我的电器都运行不同版本的节点。

有什么想法吗?

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

要创build相对于脚本的path,必须使用__dirnamevariables。

 var path = require('path'); path.join(__dirname, 'path/to/file') 

或潜在的

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

这里的代码来使用你的app.js

input指定文件名称

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