我想知道在引导微服务期间是否以正确的方式获取ConfigService。
有没有一种方法可以使用NestFactory.createMicroservice()?
async function bootstrap() {
const app = await NestFactory.create(CoreModule, {
logger: new MyLogger(),
});
const configService: ConfigService = app.get(ConfigService);
app.connectMicroservice({
transport: Transport.TCP,
options: {
port: configService.PORT,
},
});
await app.startAllMicroservicesAsync();
}
答案 0 :(得分:0)
是的,在NestFactory中有一种方法可以完成,您已经在正确地进行了!如果您想要另一个示例,这是我的引导程序功能:
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
logger: new MyLogger()
});
const config = app.get<ConfigService>(ConfigService);
const port = config.get('PORT');
configure(app, config);
await app.listen(port);
scribe.info(
`Listening at http://localhost:${port}/${config.get('GLOBAL_PREFIX')}`
);
}
其中MyLogger
是Nest默认记录器的自定义实现,而configure(app, config)
是在单独文件中完成的许多应用程序配置,以保持bootstrap
功能的精简和易于维护。当然,在开始生产之前,也需要更改“在...处收听”,但是此应用仍在为我开发。
我唯一建议你改变的地方
const configService: ConfigService = app.get(ConfigService);
到
const configService = app.get<ConfigService>(ConfigService);
使用app.get()
的泛型为您提供类型信息。