70 lines
4.7 KiB
Markdown
70 lines
4.7 KiB
Markdown
# Архитектура сервиса/микросервиса на 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 - Точка входа программы
|
||
```
|