NodeJs批量require文件夹中的所有文件
2018-05-24 本文已影响2人
全栈之巅Johnny
欢迎访问我的个人博客 - 全栈之巅
Q: 如何一次性引入
/app/controllers
文件夹下的所有控制器文件,存入一个controllers
变量中?
cnpm i require-all
然后在入口文件中调用即可:
const controllers = require('require-all')({
dirname: __dirname + '/controllers',
})
console.log(controllers.user)
这样就能一次性引用所有文件了。
该模块还提供了一些额外参数:
const controllers = require('require-all')({
dirname : __dirname + '/controllers',
filter : /(.+Controller)\.js$/,
resolve : function (Controller) {
return new Controller();
}
});
这样可以实现两个功能:
- 只引用名为
*Controller.js
的文件。 - 引用进来的文件先用
new
实例化再存入controller
变量。
这适用于定义为类的控制器文件,如:
module.exports = class UserController {
async index() {
return []
}
}