如何在NestJS应用程序中将某些路由暴露在不同的端口上

3
我有一个NestJS应用程序,它在一个特定的端口提供服务,但我需要使用其他端口公开一些路由(例如Prometheus指标/metrics)。
是否可以在NestJS应用程序中实现这个功能?
1个回答

3

是的,你可以这样做,只需单独实例化应用程序模块即可。(我假设你的应用程序是按模块组织的)。

这里是一个简短的示例:

async function bootstrap() {
  // module with the selected endpoints
  const firstApp = await NestFactory.create(FirstAppModule);
  await firstApp.listen(3001);
  // module with different endpoints
  const secondApp = await NestFactory.create(SecondAppModule);
  await secondApp.listen(3002);
}

顺便说一句,我不建议在同一个Node进程上运行多个服务器,因为这会对性能产生不良影响,并且使监视和管理服务器的生命周期变得更加困难。我建议使用像pm2这样的进程管理器来实现这个目的。


特定路由在同一主模块中,但我会提取它以便在不同的端口中可用。 - frankfullstack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接