nest.js 动态模块
我理解nestjs动态模块主要是为模块注解提供运行时获得动态信息的能力,例如配置信息 在typescript编译为js后,typescript的注解实际为一个在文件加载时候的代码,如果我们希望读取配置文件信息,然后提供给模块配置,那么这个时候访问配置信息会是null,因为注解生成的代码会在我们执行读取配置信息代码之前。 例如我们需要读取mongodb的链接字符 @Module({ imports: [ TypeOrmModule.forRoot({ type: 'mongodb', useNewUrlParser: true, useUnifiedTopology: true, url: Config.DB, // 读取数据库配置 entities: [join(__dirname, '../**/**.entity{.ts,.js}')\], // 扫描整个目录 synchronize: true, }), ], providers: [], controllers: \[], exports: [], } class DBModule { } 这种静态方式的注解, Config.DB 会是 null ,因为编译后注解代码会在读取配置信息前执行。 nestjs采取一个静态方法,返回DynamicModule类型对象,在注解上调用这个方法实现动态模块。 @Module({})