Skip to content

IlliaHreben/webbylab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WEBBYLAB

Приложение построено по патерну MVC. Запуск происходит из index.js. В файле содержится обработка API express'ом, прослушивание порта и подключение к БД. В папке controllers находится тонкий слой контроллеров. Там же находится и middleware обработчика ошибок. Контроллеры принимают request и отправляют response. Тут же реализован механизм загрузки файла через потоки. Сделано это в целях предотвращения перегрузки памяти сервера. Сервисы (папка services) имеют в себе правила валидации и обработку данных, пришедших с клиента. Данные записываются в БД, она возвращает id записанного файла, или информацию по нему. Схемы БД и отношения таблиц друг к другу описаны в файле model.

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

Инструкции

Demo

https://superfilms.herokuapp.com/

Запуск одной командой в Docker - для приемочного тестирования

cd webbylab
docker-compose up --build

Запуск локально - для разработки и запуска тестов

cd webbylab
cd server
cp .env.sample .env
docker-compose up
npm start
cd ../client
npm start
cd ../server # опционально: запуск тестов
npm test # опционально: запуск тестов

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages