Ошибка «не найдено» в Nest
Клиент открывает карточку по номеру из адреса, а в памяти сервера такой записи нет. Вернуть пустой объект обманчиво: лучше сразу сообщить, что искали не там.
NotFoundException из общих средств
сразу задаёт код «не найдено» и текст.
Метод сверяет номер со списком и
бросает исключение, если совпадения
нет; иначе возвращает название записи.
Покажем на примере постов:
import {
Controller,
Get,
NotFoundException,
Param,
} from '@nestjs/common';
@Controller('posts')
export class PostController {
private posts = [
{ id: '1', title: 'Morning note' },
{ id: '2', title: 'Evening note' },
];
@Get(':id')
getPost(@Param('id') id: string): string {
const post = this.posts.find((item) => item.id === id);
if (!post) {
throw new NotFoundException('Post not found');
}
return post.title;
}
}
Контроллер подключаем в корневом модуле:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
@Module({
controllers: [PostController],
})
export class AppModule {}
Откройте работника по номеру из адреса
в контроллере WorkerController.
Держите в памяти два номера; при
чужом номере прерывайте метод отказом
«не найдено», иначе верните имя.
Подключите контроллер к корневому
модулю.