Для работы локального сервера сперва нужно установить платформу NodeJS.
Для конфигурации проекта используется файл package.json
. Который содержит вспомогательную информацию о имени проекта, его версии, описания и т.д.
В разделе scripts
используются скрипты, которые можно запускать из окружения.
- start - запускает сервер с помощью
nodemon
. - test - должен запускать тесты, но так как тестов нету, то реализована такая загрушка (которую можно убрать)
В разделе
dependencies
прописаны зависимости, которые используются в проекте - dotenv - позволяет использовать переменные окружения для настроек (в файле
.env
описаны настройки). исходный_код - express - основной framework используемый в приложении. Тоесть его база, которая позволяет удобно обрабатывать HTTP запросы. Можно сказать, что приложение реализовано с помощью express framework'a. официальный_сайт, исходный_код
- lowdb - простенькая база данных для сохранения данных. исходный_код
- morgan - средство регистрации HTTP запросов. В данном приложении просто печатает все запросы в консоль. исходный_код
- multer - это middleware для фреймворка express для обработки multipart/form-data. исходный_код
- nodemon - пакет, который реализует перезагрузку сервера при изменении его исходного кода. Удобен для разработки, что бы каждый раз не перезапускать сервер. исходный_код
- uniqid - пакет, позволяющий генерировать уникальные идентификаторы. Очень важен при создании
id
для сущностей пользователя и счёта. исходный_код
Для установки пакетов в терменале используется команда npm i
Для запуска сервера используется команда npm run start
. В этом случае запускается сервер (с использованием nodemon
) запуская файл index.js
- 1 - изначально запрашивается пакет
dotenv
для получения переменных среды. - 2 - из
process.env
деструктурируются необходимые данные. - 3-7 - создаются переменные для использования стандартных (
path
) или импортируемых пакетов. - 8-12 - конфигурируется база данных
- 13-14 - если база данных пустая, то необходимо заполнить её начальными тестовыми данными
- 31-59 - создание тестовых данных и запись их в базу данных
- 16 - создаётся объект приложения express
- 17-21 - создаются middleware, которые будут использоваться при каждом запросе.
17 - использование статичных данных (HTML + CSS + JS)
19-20 - запрашивается и устанавливается основная маршрутизация приложения (из папки
routes
) 21 - используетсяmorgan
что бы при каждом запросе информация печаталась в консоль - 23 - в случае пустого маршрута (он же корневой) вернуть файл
index.html
(из файла.env
) - 27 - начать прослушивать указанный порт и об этом напечатать на консоль. Важно! Использовать отправки начального файла index.js необходимо после настройки маршрутов. В ином случае при каждом запросе будет срабатывать обработчик отправки статичной страницы. Страница будет отправляться, а настроенные маршруты не будут работать (так как обработчик запроса уже выполнился и отправил статичный файл)
На 20 строке запрашивается модуль маршрутизации, который находится в папке routes
в файле index.js
. В этом файле создаётся маршрутизатор приложения и настраиваются маршруты для соответствующих сущностей: пользователя, счёта и транзакции. Для каждого маршрута используется соответствующий модуль, который находится в той же папке.
Комментарии к модулям маршрутизации сущностей описаны в соответствующих комментариях.