# Архитектура сервиса/микросервиса на NodeJS ## Основа: ``` ├── .husky - Директория для git скриптов ├── deployments - Директория для деплоя сервиса ├── docs - Директория с документация ├── src - Директория с кодом проекта ├── .commitlintrc.json - Файл настройки для проверки формата коммитов ├── .eslintignore - Файл для перечисления игнорирования линтера ├── .eslintrc - Файл настройки линтера ├── .gitignore - Файл для перечисления игнорирования гита ├── .gitlab-ci.yml - Файл настройки Gitlab CI ├── .prettierrc - Файл настройки форматтера Prettier ├── Dockerfile - Файл контейнеризации сервиса ├── jest.config.js - Файл настройки Jest фреймворка для написания тестов ├── nodemon.json - Файл настройки nodemon'а ├── package.json - Файл настройки проекта ├── README.md - Общий файл документации (путеводитель) ├── tsconfig.json - Файл настройки typescript'а ├── yarn.lock - Файл хранения закреплённых версий загруженных пакетов ``` ## Структура `/.husky`: ``` ├── _ - Сгенерированные git скрипты ├── commit-msg - Настройки скрипта для проверки формата коммита ├── pre-commit - Настройки скрипта для выполнения других скриптов перед коммитом ``` ## Структура `/docs`: ``` ├── [group] - Группа документации │ ├── README.md - Файл документации ``` ## Структура `/src`: ``` ├── configuration - Директория с модулями для конфигурации сервиса ├── constans - Директория констант ├── __tests__ - Директория тестов │ ├── [group] - Группа тестов │ │ ├── [name].test.ts - Файл тестов ├── __mocks__ - Директория моков │ ├── [name].mocks.ts - Файл моков │ handlers - Директория обработчиков │ ├── [group] - Группа обработчиков │ │ ├── helpers.ts - Различные функции/утилиты для обработчиков │ │ ├── index.ts - Обработчики │ │ ├── middleware.ts - Промежуточные обработчики │ │ ├── types.ts - Все типы и структуры данных, которые касаются только обработчиков этой группы ├── models - Все модели MondoDB/PostgreSQL │ ├── [name].model.ts - Файл модели данных ├── routes - Директория для роутов, которые по определённому пути назначают обработчик │ ├── [group].routes.ts - Файл роутов ├── server - Директория с утилитами основного серверного модуля для запуска и работы сервиса ├── swagger - Схема для валидации и генерации документации роутов ├── types - Все типы и структуры данных, которые могут использоватся несколькими модулями │ ├── [group] - Группа структур данных и типов │ │ ├── [name].type.ts - Тип / структура данных │ ├── [name].type.ts - Тип / структура данных ├── utils - Различные утилиты/функции, которые могут использоваться несколькими модулями │ ├── [name].util.ts - Утилита ├── index.ts - Точка входа программы ```