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

Node.js cannot require a .js file in the same directory

本文关键字:js 有一个 文件 不能 Node      更新时间:2023-09-26

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

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

并且我在与CCD_ 3相同的目录中有一个名为CCD_。当我运行应用程序时,我得到错误

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

updater.js有一行:

module.exports = "Hello!";

我不知道为什么它不需要文件。我看到另一个项目也在做同样的事情。我可以将require常规npm模块与相同的main.js进行比较。

这是因为,当您使用node-webkit运行应用程序(main.js)时,根(工作)目录是index.html所在的目录,所以'./'指的是该目录,而不是您请求模块的文件所在的目录。

您可以通过在"路径"节点模块中使用resolve方法来轻松解决此问题,并在工作文件中将其输出提供给所需方法

只需执行以下操作:

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

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