这只是一个非常简化的示例,真实的 NestJS 实现会更复杂。
// module.decorator.ts
export function Module(options: {
controllers?: any[], providers?: any[] }) {
return (target: any) => {
const {
controllers, providers } = options;
Reflect.defineMetadata('controllers', controllers || [], target);
Reflect.defineMetadata('providers',