Skip to content

Latest commit

 

History

History
40 lines (34 loc) · 6.69 KB

server.md

File metadata and controls

40 lines (34 loc) · 6.69 KB

Описание работы серверной логики

раздел для тех, кто использует локальный сервер и хочет узнать, как он работает

Для работы локального сервера сперва нужно установить платформу 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

Содержимое файла 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. В этом файле создаётся маршрутизатор приложения и настраиваются маршруты для соответствующих сущностей: пользователя, счёта и транзакции. Для каждого маршрута используется соответствующий модуль, который находится в той же папке. Комментарии к модулям маршрутизации сущностей описаны в соответствующих комментариях.