是否存在与PHP的include相当的Node.js,以便包含的代码可以访问父文件的变量?

Pet*_*sen 6 javascript module node.js

我想将我的Node应用程序拆分成几个单独的文件,使其更加模块化,更易于维护.

但由于没有办法将文件直接"包含"到当前解析的文件中,就像PHP等其他语言一样,我的"模块"或"单独的文件"不会自动访问脚本中定义的"需要"的变量他们.

我怎样才能做到这一点?

我想在我的单独文件中做这样的事情:

module.exports = function(stuff) {
  //I now have access to 'stuff'.
}
Run Code Online (Sandbox Code Playgroud)

但它有点麻烦.

我相信有人已经在我面前解决了这个问题......你有什么建议?

hex*_*ide 2

跨模块共享变量的最简单方法是将变量分配给全局命名空间对象。在浏览器中全局声明的变量在 Node 中仍然是特定于模块的,因此存在一个global对象。

使用全局作用域被认为是不好的做法,但比其他方法简单得多:

foo.js

global.num = 3;
global.str = 'a string';
require('./bar');
Run Code Online (Sandbox Code Playgroud)

酒吧.js

console.log(num);  // 3
console.log(str);  // a string
Run Code Online (Sandbox Code Playgroud)