Введение в очень простой и хорошо структурированный стартовый API node-express-mongo

Эта статья больше посвящена правильному структурированию API узла. Доступно множество шаблонов. Некоторые следуют шаблону model-view-presenter, некоторые говорят, что MVC или MVVM, а некоторые вообще не используют какой-либо шаблон и записывают все в папку с именем routes. Этот шаблон поможет вам быстро приступить к разработке остальных API. так как большая часть настроек уже есть.

В этом шаблоне не используются никакие дополнительные библиотеки (кроме фундаментальных). Этот шаблон демонстрирует лучшее разделение кода и логики. Итак, давайте посмотрим, что содержит шаблон.

Это базовая структура приложения при клонировании репозитория. Весь код, связанный с API, будет помещен в папку src.

Это то, что содержит исходная папка.

  1. api: будет содержать все маршруты, контроллеры, репозиторий данных, сущности
  2. bin: просто точка запуска, с которой запускается сервер
  3. config: файлы конфигурации приложения идут сюда
  4. db: здесь размещаются соединения и объекты, связанные с базой данных
  5. logging: механизм ведения журнала для приложения. В настоящее время приложение имеет log4j.
  6. test: содержит все тесты для функций.
  7. другие: app.js и app.middleware.js используются для установки экспресс-приложения и промежуточного программного обеспечения.
  8. файлы swagger: swagger используется для спецификации и документации. yaml можно изменить, и вы можете увидеть спецификации в swagger-ui.

Теперь давайте посмотрим, что находится внутри каталога API.

Каталог api будет содержать папки с указанием версии. внутри этих функциональных папок создаются так, чтобы при необходимости их можно было легко переместить в другое приложение. Например, если вам нужно удалить функцию из API, вам не нужно заглядывать во множество папок и удалять файлы, связанные с этой функцией. Вы просто удаляете каталог и удаляете ссылку на маршрут.

  • xyz.router.js: будет содержать информацию о маршруте и привязку метода контроллера.
  • xyz.controller.js: будет содержать логику для каждого маршрутного метода и отвечает за обработку запросов и отправку ответов.
  • xyz.dao.js: будет содержать код для взаимодействия с базой данных
  • xyz.entity.js: будет содержать объекты мангуста для модели базы данных.
  • xyz.services.js: если есть какие-либо другие взаимодействия или обязанности, этот файл будет содержать код для этого

Давайте посмотрим, как добавить новую функцию.

Если у вас есть функция пользователя, которая содержит код для входа и регистрации, вы можете добавить ее следующим образом:

  • api -> v1 -> пользователи ->users.controller.js, users.router.js, users.entity.js, users.dao.js и т. д.

Добавьте сюда новый каталог: api -> v1 -> users

  • users.controller.js: добавить методы для обработки запросов на вход и регистрацию.
  • users.router.js: сопоставьте маршруты, такие как «/login», «/register», с соответствующими методами контроллера.
  • users.dao.js: добавить методы для создания и аутентификации пользователей (электронная почта и пароль)
  • users.entity.js: добавьте модель схемы мангуста для таких пользователей, как электронная почта (строка, уникальная) и пароль (строка)

Клонируйте этот репозиторий и используйте его. Если вы хотите внести свой вклад, разветвите его и отправьте запрос на включение.



Спасибо за чтение! Удачного дня!