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

Доступ запрещён в Nest

Запись в списке помечена как закрытая, а клиент всё равно вызывает маршрут редактирования. Вернуть успех нельзя, хотя операцию выполнять нельзя по правилам сайта.

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

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

import { Controller, ForbiddenException, Patch, Param, } from '@nestjs/common'; @Controller('posts') export class PostController { private posts = [ { id: '1', title: 'Morning note', locked: true }, { id: '2', title: 'Evening note', locked: false }, ]; @Patch(':id') editPost(@Param('id') id: string): string { const post = this.posts.find((item) => item.id === id); if (post?.locked) { throw new ForbiddenException('Post is locked'); } return 'Post updated'; } }

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

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

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

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