#routes #port #nestjs
Вопрос:
У меня есть приложение NestJS, которое обслуживается в одном конкретном порту, но мне нужно предоставить некоторые маршруты (например, метрики /метрики Prometheus) с другим портом.
Можно ли это сделать в приложении NestJS?
Ответ №1:
Да, вы можете, просто создайте экземпляры прикладных модулей отдельно. (Я предполагаю, что ваше приложение организовано в виде модулей).
Вот краткий пример:
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);
}
P.S. Я не рекомендую запускать несколько серверов в одном и том же узловом процессе, так как это плохо влияет на производительность, а также усложняет мониторинг и управление их жизненным циклом. Я предлагаю использовать для этой цели какой-нибудь менеджер процессов, например pm2.
Комментарии:
1. Конкретный маршрут был в том же главном модуле, но я извлеку его, чтобы сделать его доступным в другом порту.