Перейти к содержанию

Node.js и PostgreSQL: сервис заявок DeskQueue

Все курсы

В 20 уроках создаём DeskQueue — учебный сервис заявок на обслуживание оборудования. Начинаем с процесса JavaScript и файлов, выделяем HTTP-контракт и слои Express, затем сохраняем данные PostgreSQL и добавляем пользователей, права, обновление токенов и текстовые вложения. Одна предметная модель развивается по всей серии.

Нужны основы JavaScript, объектов, функций и HTTP. Учебная среда: Node.js 24 LTS, Express 5, pg 8, PostgreSQL 18; позднее jose 6 и Multer 2. Архив содержит полные последовательные состояния. Пакеты не устанавливались, lockfile не выдумывался, приложение и SQL не запускались. Приведённые ответы являются ожидаемыми результатами читателя.

Серверная основа адаптирована к актуальным версиям и собственному примеру. Главы PostgreSQL являются самостоятельным дополнением по первичной документации; они не приписываются материалам о другой базе. Недоступные исходные записи учитываются в редакционной карте, а текст курса остаётся самодостаточным.

Путь проекта

Урок Результат
1. Node.js и процесс серверного приложения Сопоставить среду выполнения, процесс и данные DeskQueue.
2. Файлы и асинхронное чтение в Node.js Прочитать начальные заявки без блокировки обработки.
3. Модули и зависимости проекта Разделить данные и точку входа, описать зависимости.
4. События и журнал операций Отделить факт изменения заявки от реакции на него.
5. HTTP-сервер и ответы JSON Получить список заявок и осмысленную ошибку 404.
6. Маршруты приложения Express Перенести HTTP-контракт в Express 5.
7. Порядок middleware и контекст запроса Добавить идентификатор запроса и ограничение JSON.
8. Express Router и границы адресов Выделить /api/tickets и параметры заявки.
9. Контроллер и хранилище заявок Отделить HTTP от операций над заявками.
10. Схема PostgreSQL и ограничения данных Задать заявки, пользователей и историю в SQL.
11. Подключение PostgreSQL через пул Выполнить параметризованный запрос без утечки соединений.
12. CRUD заявок в PostgreSQL Сохранить, прочитать и изменить заявку через API.
13. Проверка данных и единые ошибки API Отличить неверный ввод, отсутствие и внутренний сбой.
14. Фильтрация и постраничный список Получить ограниченную страницу в устойчивом порядке.
15. Транзакция заявки и истории Изменить статус и историю одной атомарной операцией.
16. Пароли и регистрация пользователей Хранить соль и производную пароля вместо исходной строки.
17. JWT и проверка прав пользователя Разделить подлинность токена и разрешение операции.
18. Обновление токенов и обнаружение повтора Хранить семью refresh-токенов и выполнять ротацию.
19. Вложение к заявке и границы загрузки Принять ограниченный текстовый файл вне публичного каталога.
20. Конфигурация и завершение приложения Связать конфигурацию, readiness и закрытие соединений.

Скачать полные состояния DeskQueue.

Ступени 1–9 используют данные одного процесса. Глава 10 задаёт схему, 11 показывает отдельное подключение, 12 переносит API в базу. С 17 адреса заявок требуют входа; раньше они относятся к промежуточному локальному примеру. Публичная регистрация всегда создаёт requester, а роль agent назначается администратором учебной базы.

Последняя ступень описывает готовность и остановку процесса. Для изучения сопровождения доступны курс деплоймента и отдельные уроки Linux. Работа выполняется в собственном учебном окружении; серия не подключается к действующей инфраструктуре.