CRUD
Цель: изучить и реализовать базовые операции с БД.
Содержание и порядок выполнения лабораторной работы:
-
Повторить язык запросов SQL, основы SQLite и работу с ней в node.js.
-
Продолжить работу на ветке из прошлого занятия и дописать новый функционал.
-
Сохранив функционал из прошлых работ по чтению комментариев с пагинацией и добавлению нового комментария, добавить возможность изменения и удаления комментария, а также чтению одного комментария.
- GET-запрос на
/comments/2
(2 это пример первичного ключа комментария) возвращает информацию о конкретном комментарии, например{"id": 2, "comment": "Great work!", "name": "John Doe", "time": "2024-03-20T10:30:00Z"}
- POST-запрос на
/comments
добавляет комментарий в бд и также возвращает его с id и временем{"id": 3, "comment": "New work!", "name": "John Doe", "time": "2024-03-26T10:30:00Z"}
- DELETE-запрос на
/comments/2
удаляет комментарий из бд в теле ответа ничего не возвращается. - PATCH-запрос на
/comments/2
с телом запроса вида{"comment": "Новый текст"}
обновляет запись в БД и в теле ответа возвращает обновленный комментарий.
- GET-запрос на
-
Обработайте возможные ошибки. Если пришел некорректный запрос, то возвращайте ошибку 400-й группы пользователю. Если ошибка возникла на стороне сервера, например ошибка БД, то отправляйте ответ с кодом 500-й группы.
-
Для работы с GET-запросами на
/comments/2
и/comments?page=2&limit=5
в классе сервера вы можете перейти от получения функций напрямую по ключу из объекта к перебору ключей этого объекта и поиску совпадений, например через метод строки.startsWith()
, а логику обработки запроса реализовать в соответствующем контроллере.
Результаты выполнения лабораторной работы:
Работающий локально сервер с логикой, которая соответствует требованиям. Код отформатирован, не содержит ошибок и замечаний от статического анализа кода ESLint, сохранен в системе контроля версий.
Источники
Вопросы для защиты
- Что такое CRUD-операции.
- Какие методы HTTP соответствуют CRUD?
- Чем отличаются PUT и PATCH?
- Как и для чего происходит обработка ошибок на сервере?