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

标签 javascript node.js node-webkit

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

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

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

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

updater.js 里面只有一行:

module.exports = "Hello!";

我不知道为什么它不能要求该文件。我见过另一个项目做同样的事情。我可以从同一个 main.jsrequire 常规 npm 模块。

最佳答案

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

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

只需执行以下操作:

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

编辑:关于全局 Node 对象 '__dirname'(和其他)的信息可以找到 here .

关于javascript - Node.js 不能要求同一目录中的 .js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26311577/

相关文章:

javascript - 在javascript中跳转代码

javascript - 嵌套回调时为空数组

javascript - 将Json数据转换为数组

javascript - Gulp 任务根据参数具有不同的源

javascript - Jquery/Javascript : How can I get ClientID for dynamically generated controls

node.js - 如何更改 node.js 中 process.env.PORT 的值?

node.js multer 模块无法处理错误

css - 如何使 iframe 使用所有可用的高度

node.js - Node-Webkit 文件下载进度

node.js - 如何遍历所有文件,支持暂停和继续