如何让一个文件在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 }