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

Javascript Node.js不能要求同一目录中的.js文件,javascript,node.js,node-webkit,Javascript,Node.js,Node Webkit,我有一个带有main.js的节点webkit项目。在最高层,我有 var updater = require("./updater.js"); 我有一个名为updater.js的文件,它与main.js位于同一目录中。当我运行应用程序时,我得到了错误信息 Uncaught Error: Cannot find module './updater.js' updater.js中有一行: module.exports = "Hello!"; 我不知道为什么它不需要这个文件。我见过另一个项目做

我有一个带有
main.js
的节点webkit项目。在最高层,我有

var updater = require("./updater.js");
我有一个名为
updater.js
的文件,它与
main.js
位于同一目录中。当我运行应用程序时,我得到了错误信息

Uncaught Error: Cannot find module './updater.js' 
updater.js
中有一行:

module.exports = "Hello!";

我不知道为什么它不需要这个文件。我见过另一个项目做同样的事情。我可以从相同的
main.js

require
regular
npm
模块,这是因为,当您使用节点webkit运行应用程序(main.js)时,根目录(工作)是index.html所在的目录,因此“/”指的是该目录,而不是您请求模块的文件所在的目录

通过使用并将输出提供给工作文件中的require方法,可以轻松解决此问题

只需执行以下操作:

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

编辑:可以找到有关全局节点对象“\uu dirname”(和其他对象)的信息。

您是否具有
updater.js
的读取权限?您是如何启动节点的?是否通过键入
node main.js
直接启动此目录中的节点?如果您使用了一些帮助程序,那么
cwd
可能已经更改。您是在
main.js
所在的目录中使用
node main
,当它抛出此错误时,还是在
main.js
中作为不同脚本中的模块加载?请尝试使用var updater=require(“/updater”);对于doc的链接,是否有一种不那么冗长的方式需要一个文件(不需要两行,path,path.resolve,_dirname,relative path,等等)?虽然这个解决方案确实有效,但“/”(我缺少了它)现在似乎真的可以像人们所期望的那样工作了,
path.resolve(_dirname…
不再需要了