Node.js不能在同一目录中要求.js文件

时间:2014-10-11 05:49:40

标签: javascript node.js node-webkit

我有一个带有main.js的node-webkit项目。在最顶端,我有

var updater = require("./updater.js");

我在updater.js所在的目录中有一个名为main.js的文件。当我运行应用程序时,我收到错误

Uncaught Error: Cannot find module './updater.js' 

updater.js中有一行:

module.exports = "Hello!";

我不知道为什么它不能要求文件。我见过另一个项目做同样的事情。我可以require定期npmmain.js模块。{/ 1}}。

1 个答案:

答案 0 :(得分:26)

这是因为,当你使用node-webkit运行app(main.js)时,root(working)目录就是index.html所在的目录,所以'./'指的是那个目录而不是您请求模块的文件位于。

您可以使用resolve method in 'path' node module轻松解决此问题,并将其输出提供给工作文件中的require方法

只需执行以下操作:

var path = require('path');
var updater = require( path.resolve( __dirname, "./updater.js" ) );

编辑:有关全局节点对象'__dirname'(和其他人)的信息可以找到here