Skip to content
Веб-разработка
GitHub

CRUD

Цель: изучить и реализовать базовые операции с БД.

Содержание и порядок выполнения лабораторной работы:

  1. Повторить язык запросов SQL, основы SQLite и работу с ней в node.js.

  2. Продолжить работу на ветке из прошлого занятия и дописать новый функционал.

  3. Сохранив функционал из прошлых работ по чтению комментариев с пагинацией и добавлению нового комментария, добавить возможность изменения и удаления комментария, а также чтению одного комментария.

    1. GET-запрос на /comments/2 (2 это пример первичного ключа комментария) возвращает информацию о конкретном комментарии, например {"id": 2, "comment": "Great work!", "name": "John Doe", "time": "2024-03-20T10:30:00Z"}
    2. POST-запрос на /comments добавляет комментарий в бд и также возвращает его с id и временем {"id": 3, "comment": "New work!", "name": "John Doe", "time": "2024-03-26T10:30:00Z"}
    3. DELETE-запрос на /comments/2 удаляет комментарий из бд в теле ответа ничего не возвращается.
    4. PATCH-запрос на /comments/2 с телом запроса вида {"comment": "Новый текст"} обновляет запись в БД и в теле ответа возвращает обновленный комментарий.
  4. Обработайте возможные ошибки. Если пришел некорректный запрос, то возвращайте ошибку 400-й группы пользователю. Если ошибка возникла на стороне сервера, например ошибка БД, то отправляйте ответ с кодом 500-й группы.

  5. Для работы с GET-запросами на /comments/2 и /comments?page=2&limit=5 в классе сервера вы можете перейти от получения функций напрямую по ключу из объекта к перебору ключей этого объекта и поиску совпадений, например через метод строки .startsWith(), а логику обработки запроса реализовать в соответствующем контроллере.

Результаты выполнения лабораторной работы:

Работающий локально сервер с логикой, которая соответствует требованиям. Код отформатирован, не содержит ошибок и замечаний от статического анализа кода ESLint, сохранен в системе контроля версий.

Источники

  1. Что такое API
  2. Методы HTTP запроса
  3. Updating Data in SQLite Database

Вопросы для защиты

  1. Что такое CRUD-операции.
  2. Какие методы HTTP соответствуют CRUD?
  3. Чем отличаются PUT и PATCH?
  4. Как и для чего происходит обработка ошибок на сервере?