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) .....