我遇到的问题包括要在我的文件中执行的文件 的NodeJS </跨度> 项目。
我在同一目录中有两个文件:
a.js
var test =“Hello World”;
和
b.js
要求(” ./ a.js’);的console.log(测试);
我是
更改 的 a.js 强> 导出变量:
exports.test = "Hello World";
并指定返回值 require('./a.js') 变量:
require('./a.js')
var a = require('./a.js'); console.log(a.test);
您经常会看到并可能使用的另一种模式是将一些东西(一个对象,一个函数)分配给 module.exports 对象 的 a.js 强> ,像这样:
module.exports
module.exports = { big: "string" };
如果要将变量导出到另一个文件中。有两种模式。 一个是 a.js global.test = "Hello World"; //这里测试是全局变量,但它会被污染
global.test = "Hello World";
另一个是 a.js module.exports.test = "Hello World"; 或exports.test =“Hello World”; b.js var test = require('./a.js'); //在b.js中测试可以在a.js中进行测试 的console.log(测试);
module.exports.test = "Hello World";
var test = require('./a.js');
你误解了应该发生的事情。模块中定义的变量不会共享。 NodeJS对它们进行了限制。
你必须把它归还 module.exports 。
module.exports = "Hello World";
var test = require('./a.js'); console.log(test);