РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpCoRc 200 of 201 menu
◀ ▶

Конфликт маршрутов в Nest

Рядом висят адрес с фиксированным словом в пути и адрес с номером в том же месте. Запрос на страницу архива уходит в обработчик номера, и в ответ приходит строка вместо ожидаемого текста.

На адаптере Express Nest регистрирует маршруты в порядке объявления. Параметр принимает любой сегмент, в том числе слово архива. Постоянный путь ставят в коде раньше параметра, тогда совпадение по слову срабатывает до подстановки номера. Nest 12 умеет предупреждать о таком затенении через routeConflictPolicy.shadow при старте, но порядок объявления остаётся надёжным способом.

Покажем на примере постов:

import { Controller, Get, Param } from '@nestjs/common'; @Controller('posts') export class PostsController { @Get('archive') getArchive(): string { return 'Post archive'; } @Get(':id') getPost(@Param('id') id: string): string { return id; } }

Контроллер подключим в модуле темы, а модуль в корне:

import { Module } from '@nestjs/common'; import { PostsController } from './posts.controller.js'; @Module({ controllers: [PostsController], }) export class PostsModule {}
import { Module } from '@nestjs/common'; import { PostsModule } from './posts/posts.module.js'; @Module({ imports: [PostsModule], }) export class AppModule {}

Сделайте в WorkersController постоянный адрес и адрес с номером так, чтобы постоянное слово не попадало в номер, и подключите модуль темы к корню.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить