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;