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

Конфликт данных в Nest

Клиент создаёт запись с номером, который уже занят в памяти сервера. Второй объект с тем же ключом испортит список, если метод молча добавит дубликат.

ConflictException отвечает кодом «конфликт». Перед добавлением метод ищет совпадение по номеру и бросает исключение, когда место уже занято.

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

import { Body, ConflictException, Controller, Post, } from '@nestjs/common'; @Controller('posts') export class PostController { private posts = [{ id: '1', title: 'Morning note' }]; @Post() createPost(@Body() body: { id: string; title: string }) { const exists = this.posts.some((item) => item.id === body.id); if (exists) { throw new ConflictException('Post already exists'); } const item = { id: body.id, title: body.title }; this.posts.push(item); return item; } }

Контроллер регистрируем в корневом модуле:

import { Module } from '@nestjs/common'; import { PostController } from './post.controller.js'; @Module({ controllers: [PostController], }) export class AppModule {}

Примите работника с заданным номером в контроллере WorkerController. Если такой номер уже в списке, прервите метод отказом «конфликт». Подключите контроллер к корневому модулю.

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