NodeJs需要('./ file.js')问题
我有问题,包括在我的NodeJs项目中执行的文件。
我有两个文件在同一个目录中:
a.js
var test = "Hello World";
和
b.js
require('./a.js'); console.log(test);
我用node b.js
执行b.js并得到错误ReferenceError: test is not defined
。
我已经浏览了文档http://nodejs.org/api/modules.html#modules_file_modules
我错过了什么? 提前致谢。
更改a.js以导出variables:
exports.test = "Hello World";
并将require('./a.js')
的返回值require('./a.js')
一个variables:
var a = require('./a.js'); console.log(a.test);
您经常会看到并且可能使用的另一种模式是将一些(对象,函数)分配给module.exports
中的module.exports
对象,如下所示:
module.exports = { big: "string" };
你误解了应该发生的事情。 您的模块中定义的variables不共享。 NodeJS范围它们。
你必须返回它与module.exports
。
a.js
module.exports = "Hello World";
b.js
var test = require('./a.js'); console.log(test);
如果你想在另一个文件中导出variables。有两种模式。 一个是a.js
global.test = "Hello World";
//这里testing是全局variables,但是会被污染
另一个是
a.js module.exports.test = "Hello World";
或exports.test =“Hello World”; b.js var test = require('./a.js');
//在b.js中testing可以在a.js console.log(test)中得到testing;