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

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

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

我有一个名为updater.js在与main.js相同的目录中的main.js 。 当我运行应用程序,我得到错误

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

updater.js有一行:

 module.exports = "Hello!"; 

我不知道为什么它不能要求文件。 我看到另一个项目做同样的事情。 我可以require从相同的main.js正常npm模块。

这是因为,当使用node-webkit运行app(main.js)时,根(工作)目录就是index.html所在的目录,所以“./”指的是那个目录,而不是你所在的目录请求模块处于。

您可以使用'path'节点模块中的parsing方法轻松地解决此问题,并将其输出提供给工作文件中的require方法

只需执行以下操作:

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

编辑:信息全局节点对象'__dirname'(和其他人)可以在这里find。