Javascript Can';第一次找不到模块
我正在为我的桌面应用程序使用Javascript Can';第一次找不到模块,javascript,node.js,node-webkit,Javascript,Node.js,Node Webkit,我正在为我的桌面应用程序使用节点webkit引擎。 这是我的文件的结构: app/ |- scripts/ |- librecraft.js |- index.html |- package.json |- libre.js app/index.html app/libre.js 问题 当我运行nw.exe并从中打开app/index.html时,节点webkit找不到模块/libre.js。但当我刷新(用右刷新按钮)时,它神奇地工作了。为什么?如果你想知道刷新页面时它为什么会工作,你必
节点webkit
引擎。
这是我的文件的结构:
app/
|- scripts/
|- librecraft.js
|- index.html
|- package.json
|- libre.js
app/index.html
app/libre.js
问题
当我运行
nw.exe
并从中打开app/index.html
时,节点webkit
找不到模块/libre.js
。但当我刷新(用右刷新按钮)时,它神奇地工作了。为什么?如果你想知道刷新页面时它为什么会工作,你必须知道你的nodejs
文件在应用的整个生命周期中只加载一次。当应用程序启动时,将返回值(doSomething
)更改为其他值,保存文件并刷新页面;您会注意到返回的值是旧值
调用时,您的节点.js
文件似乎尚未加载。打开开发控制台
,查看错误消息(如果有)
我建议您更新librestraft.js
,如下所示:
//librecraft.js
var libre = require('../libre.js');
var val = libre.doSomething(); //
console.log(val);
希望对您有所帮助。- 最好不要直接在HTML中包含或编写脚本, 当您使用node.js函数时。还有,这种方法的缺点是什么 技术是,脚本(您可能希望从中执行一些操作) 后台任务)将在每次重新加载页面时重新加载李>
- 改用“节点主节点”。在这里:
- 记住一件简单的事情:节点webkit应用程序不是网站:)
libre.doSomething();
exports.doSomething = function () { return 42 };
//librecraft.js
var libre = require('../libre.js');
var val = libre.doSomething(); //
console.log(val);