引导微服务时获取ConfigService的正确方法

时间:2019-06-20 12:50:11

标签: node.js microservices nestjs

我想知道在引导微服务期间是否以正确的方式获取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();
}

1 个答案:

答案 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()的泛型为您提供类型信息。