Адрес редиректа в Nest
Пусть старый адрес вёл на одну карточку, а её номер каждый раз другой. Один новый путь в декораторе не записать: он зависит от номера, который стоял в старом адресе.
Метод может сам назвать путь перехода.
Декоратор Redirect только помечает,
что это не текст страницы, а уход
на другой адрес. Метод возвращает
объект с новым путём, и клиент идёт
уже по нему.
Покажем на примере поста. Соберём адрес карточки из номера и отправим клиента туда:
import { Controller, Get, Param, Redirect } from '@nestjs/common';
@Controller()
export class PostController {
@Get('old/:id')
@Redirect('/posts')
redirectPost(@Param('id') id: string) {
return { url: '/posts/' + id };
}
@Get('posts/:id')
getPost(@Param('id') id: string): string {
return id;
}
}
Номер из старого адреса попадает в новый путь. Карточка по этому пути отдаёт тот же номер. Зарегистрируем класс в корневом модуле:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
@Module({
controllers: [PostController],
})
export class AppModule {}
Сделайте переход со старого адреса
работника на его новую карточку
с тем же номером в контроллере
WorkerController и подключите
его к корневому модулю.