我有一个Node.js项目(这是我的问题的最小工作示例):
现在我想创建一个名为client.html的文件,它也将使用module2.js。这是我尝试过但失败了的代码:
module1.js:
module.exports = function() {
return "this is module1!";
};
module2.js:
var module1 = require('./module1');
module.exports = function() {
return module1()+" and this is module2!";
};
server.js:
var module2 = require('./module2');
console.log(module2()); // prints: "this is module1! and this is module2!"
现在我想创建一个名为client.html的文件,它也将使用module2.js。这是我尝试过但失败了的代码:
naive version:
<script src='module2.js'></script>
<script>alert(module2());</script> // should alert: "this is module1! and this is module2!"
这显然不起作用 - 它会产生两个错误:
- 引用错误:require未定义。
- 引用错误:module2未定义。
使用Node-Browserify: 运行后:
browserify module2.js > module2.browserified.js
我将client.html更改为:
<script src='require.js'></script>
<script>
var module2 = require('module2');
alert(module2());
</script>
这个不起作用 - 它会产生一个错误:
- ReferenceError: module2未定义。
使用Smoothie.js by @Torben:
<script src='require.js'></script>
<script>
var module2 = require('module2');
alert(module2());
</script>
这不起作用 - 它会产生三个错误:
- module2.js第1行语法错误。
- SmoothieError:无法加载模块2(0)
- TypeError:module2不是一个函数
我看了require.js,但它似乎太复杂了,无法与Node.js结合使用 - 我没有找到一个简单的例子,可以将现有的Node.js模块加载到网页中(就像在示例中一样)。
我看了head.js和lab.js,但没有提到Node.js的require。
那么,我应该怎么做才能从HTML页面中使用我的现有Node.js模块module2.js?
require('module2')
是否找到了你期望找到的文件?比如说,这个文件是否公开可用? - juanpaco