如何让一个文件在node.js / express.js中inheritance导出?

我的express.js应用程序中有一个文件夹,其中包含三个文件:

// models/one.js exports.One = function() { return 'one'; } // models/two.js exports.Two = function() { return 'two'; } // models/three.js exports.Three = function() { return 'three'; } 

我想能够像这样使用它:

 var db = require('./models'); doSomething(db.One, db.Two, db.Three); 

换句话说, 我想将来自多个文件的导出组合在一个variables中

我知道默认情况下,require语句会查找models / index.js。 有什么我可以放在index.js,这将允许它inheritance目录中的其他文件的导出,如(non-working psuedocode):

 // models/index.js exports = require('./one.js', './two.js', './three.js); 

思考? 谢谢!

请参阅为解决scheme定制现有模块 。

或者你可以加载一个目录中的所有文件,例如

a.js:

 exports.a = 1; 

b.js:

 exports.b = 2; 

index.js 🙁这将需要在同一个directroy中的所有.js文件,并将它们捆绑到一个对象中)

 var fs = require('fs') , path = require('path') , bundle = {} , i , k , mod; fs.readdirSync(__dirname).forEach(function(filename) { if (path.extname(filename) == '.js' && path.resolve(filename) != __filename) { mod = require(path.resolve(path.join(__dirname, filename))); for (k in mod) { bundle[k] = mod[k]; } } }); module.exports = bundle; 

需要你将看到的目录

 { a: 1, b: 2 }