Ответ
CRUD — это акроним, описывающий четыре фундаментальные операции для работы с данными в приложении:
- Create (Создание)
- Read (Чтение)
- Update (Обновление)
- Delete (Удаление)
В экосистеме Node.js CRUD-операции чаще всего реализуются в виде RESTful API с использованием фреймворков, таких как Express или Nest.js, и взаимодействием с базой данных через драйвер или ORM/ODM.
Пример набора базовых маршрутов Express для сущности Task:
const express = require('express');
const router = express.Router();
const Task = require('../models/Task'); // Модель Mongoose
// CREATE
router.post('/', async (req, res) => {
try {
const task = new Task(req.body);
await task.save();
res.status(201).json(task);
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// READ (все)
router.get('/', async (req, res) => {
const tasks = await Task.find({});
res.json(tasks);
});
// READ (один)
router.get('/:id', async (req, res) => {
const task = await Task.findById(req.params.id);
if (!task) return res.status(404).json({ message: 'Task not found' });
res.json(task);
});
// UPDATE
router.patch('/:id', async (req, res) => {
const task = await Task.findByIdAndUpdate(req.params.id, req.body, { new: true, runValidators: true });
if (!task) return res.status(404).json({ message: 'Task not found' });
res.json(task);
});
// DELETE
router.delete('/:id', async (req, res) => {
const task = await Task.findByIdAndDelete(req.params.id);
if (!task) return res.status(404).json({ message: 'Task not found' });
res.status(204).send();
});
В реальных проектах эти операции дополняются валидацией входящих данных (например, с помощью Joi или class-validator), аутентификацией, авторизацией, пагинацией и фильтрацией для операций чтения.
Видео-ответы
▶
▶
▶