Skip to content

Описание структуры проекта

EvgeniiMal edited this page Feb 24, 2021 · 2 revisions

Описание ведётся от каталога src/

  1. bin - каталог содержащий файл запуска приложения

  2. common - каталог содержит общие для всех модулей файлы приложения

    • db - содержит файлы подключения БД
      • mongodb.js - файл отвечающий за подключение к mongodb
    • errors - содержит файлы реализующие логику обработки ошибок в приложении:
      • async-error-wrapper.js - обёртка позволяющая перехватывать ошибки в asynk/await роутах и передавать их обработчику ошибок.
      • error-handler.js - файл отвечающий за логику обработки ошибок
      • errors-list.js - файл содержащий кастомные классы ошибкок
    • logging - каталог содержащий файл логгера и относящиеся к нему файлы
      • logger.js - файл логгера(в данном случае используется winston )
    • validation - каталог содержащий валидаторы уровня приложения и общие для всех модулей.
      • objectID.validation.js - файл содержащий функцию проверки валидности objectId
    • config.js - файл конфигурации приложения. В данном случае содержит:
      • DEFAULT_LANG: 'en' - язык локализации API по умолчанию
      • DEV_PORT: 3000 - порт для локальной разработки
      • MONGO_CONNECTION_STRING:process.env.MONGO_CONNECTION_STRING - строка подключения к mongodb (в данном случае берётся из переменных среды)
  3. docs - каталог содержащий документацию проекта ( в данном случае docs.yaml - swagger документацию проекта )

  4. middleware - каталог содержащий функции промежуточной обработки:

    • error-middleware.js - файл содержащий промежуточную функцию для обработки ошибок.
    • request-logger.js - файл содержащий промежуточную функцию для логгирования запросов
  5. modules -каталог содержащий модули приложения. Структура модулей:

    • constants - файл содержаший константы уровня модуля
    • router - файл роутера модуля
    • schema - файл содержащий схему или схемы сущностей модуля
    • service - файл содержащий логику работы приложения или обработки данных
  6. app.js - основной файл express приложения