2015-10-04 64 views
1

我正在编写一个NodeJS应用程序,我想将我的类分成单独的文件,但是它们内部有很多类的名称空间(模块),使用一个类的一个文件。如何创建跨越多个文件的CommonJS模块?

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

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

回答

0

你namemespace /分组模块可以看看这个(急切需要):

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(); 

你可以做更多更深的嵌套,通过组合其他分组模块。