如何创建跨多个文件的CommonJS模块?

时间:2015-10-04 06:17:45

标签: node.js commonjs

我正在编写一个NodeJS应用程序,我想将我的类分成单独的文件,但是在其中包含许多类的命名空间(模块),使用一个文件用于一个类。

据我所知,NodeJS使用的CommonJS对其他文件中的require个对象,将每个文件视为不同的模块。

有鉴于此,我如何创建跨越多个文件的CommonJS模块?

1 个答案:

答案 0 :(得分:0)

您的名称空间/分组模块可能看起来像这样(迫切需要):

<强> customer.js

module.exports.wholesale = require('./customers/wholesale');
module.exports.retail = require('./customers/retail');
module.exports.special = require('./customers/special');

现在当你需要客户模块时,你可以写:

var Customer = require('customer.js');

您可以访问所有客户类型:

var wholesale = Customer.wholesale;
var retail = Customer.retail;
var special = Customer.special;

在导入Customer的此解决方案中,它也会加载所有子模块。有时子模块可能非常大,您只需要一个子模块。如果是的话,你可以写这样的分组客户模块(懒惰的要求):

module.exports.wholesale = function(){
  return require('./customers/wholesale');
}
module.exports.retail = function(){
  return require('./customers/retail');
}
module.exports.special = function(){
  return require('./customers/special');
}

您可以访问所有客户类型:

var wholesale = Customer.wholesale();
var retail = Customer.retail();
var special = Customer.special();

通过对其他分组模块进行分组,您可以进行更深入的嵌套。