- 安装require-all
npm i require-all
yarn add require-all
- 封装方法
global.utils.ts
/**
* 加载指定目录的所有模块
* @param url src目录的相对路径('/xx')
* @return any[]
*/
export const requireAll = (url: string): any[] => {
return Object.values(
require("require-all")({
dirname: __dirname + url,
})
).map((item: { default: object } | any) => {
// 提取默认导出
return item.default;
});
};
- 批量加载controllers,providers
app.module.ts
import { Module } from "@nestjs/common";
import { requireAll } from "./global.utils";
const services = requireAll("/service");
const controllers = requireAll("/controller");
@Module({
imports: [],
controllers: [...controllers],
providers: [
...services,
],
})
export class AppModule { }