Nestjs使用参数创建模块的多个实例

时间:2020-10-13 10:35:07

标签: nestjs

有一个模块实现了控制器,服务和模型,我想在其他配置下重复使用。 该模块是在不同上下文国家/地区运营的服务。我想指定一个简单的参数国家/地区,主要用于更改目标数据库中模型的集合名称和一个路由参数。

例如

@Module({
})
export class XUserModule{
    static register(country: string): DynamicModule{
        return{
            module: XUserModule,
            imports: [
                MongooseModule.forFeature(
                    [
                        { name: 'User', schema: UserSchema },
                    ],
                    dbname.fromcountry(country)
                )
            ],
            controllers: [
                XUserController
            ],
            providers: [
                XUserService,
            ],
            exports: [
                XUserService,
                MongooseModule
            ]
        }
    }
}
@Controller()
export class XUserController {
    constructor(
        private xUserService: XUserService
    ) {
    }

    @Get('COUNTRY_CODE_HERE/test')
    async test(
    ): Promise<string>{
        return 'OK'
    }
}
XUserModule.register('dz') // ... 

我的问题是,我该如何创建这样的控制器。为了能够将country信息转发到模块内的服务和控制器。

提前谢谢。

0 个答案:

没有答案