MyApp
├── main.js
└── modules
├── a.js
├── b.js
├── c.js
├── d.js
├── e.js
在我的NodeJS應用程序中,我怎樣才能一次性將所有自定義模塊(a,b,c,d,e)導入到我的main.js文件中?一次從一個目錄導入所有模塊[NODE]
我有很長的模塊列表,我不想單獨導入它們。
MyApp
├── main.js
└── modules
├── a.js
├── b.js
├── c.js
├── d.js
├── e.js
在我的NodeJS應用程序中,我怎樣才能一次性將所有自定義模塊(a,b,c,d,e)導入到我的main.js文件中?一次從一個目錄導入所有模塊[NODE]
我有很長的模塊列表,我不想單獨導入它們。
在modules/
文件夾中創建一個index.js
:
const a = require('./a')
const b = require('./b')
const c = require('./c')
const d = require('./d')
const e = require('./e')
module.exports = {
a,
b,
c,
d,
e
}
然後,只需導入模塊main.js
:
const modules = require('./modules')
modules.a
另外,您可以遍歷目錄和動態導入每個模塊。
const path = require('path');
const fs = require('fs');
const modulesPath = './modules';
const modulesList = fs.readdirSync(modulesPath);
modulesList.forEach(modulePath => require(path.resolve(modulesPath, modulePath)));
您可以動態導入每個模塊。
const fs = require('fs');
fs
.readdirSync(`${__dirname}/modules`)
.filter(file => (file.slice(-3) === '.js'))
.forEach((file) => {
require(`./modules/${file}`)
});
您可以使用手動方式導入目錄中的
var allModules = {};
require('fs').readdirSync(__dirname + '/modules/').forEach(function(file) {
if (file.match(/\.js$/) !== null && file !== 'index.js') {
var name = file.replace('.js', '');
allModules[name] = require('./modules/' + file);
}
});
// allModules.a(params)
所有模塊,也可以使用這個庫針對這種情況require-dir
var requireDir = require('require-dir');
var modulesPackage = requireDir('./modules');
// modulesPackage contains
//{
// a: require("./modules/a"),
// b: require("./modules/b")
//}
的lib hava提示:如果你想要求()相同的d在多個地方的irectory,你可以在目錄本身做到這一點!只是要具有以下的index.js文件:如果你想
module.exports = require('require-dir')(); // defaults to '.'
在模塊使用包:
var mds = require('./modules');
// mds.a(params) .....