Publik IP: 178.154.200.253
Domain: https://mesto.gq
GitHub: https://github.com/Verakhab/server.github.io
Version: v.2.0.0
Приложение написанное на Node.js используя веб-фреймворк express.js, база данных MongoDB в связке с mongoose, реализовано 11 роутов, а именно:
- Регистрация;
- Вход;
- Получение данных пользователя;
- Получение данных всех пользователей;
- Обновление информации пользователя;
- Обновление аватара пользователя;
- Создание карточки;
- Удаление карточки;
- Лайк карточки;
- Удаление лайка карточки;
- Получение всех карточек;
Сервер расположен на виртуальной машине в облаке, используется менеджер процессов pm2, http-сервер nginx перенаправляющий запросы на нужные порты, расположенно на поддомене фронтенда, используется SSL-сертификат. Приложение осуществляет аутентификацию пользователя прежде чем допустить ко всем роутам кроме регистрация и входа, использует npm cors для отправки нужных заголовков доступным ресурсам(в доработке), также логгирует все запросы и запросы с возникновением ошибок отдельно с помощью npm logger, осуществляет валидацию полученных данных на уровне роута при помощи npm celebrate и базы данных встроенными возможностями mongoose, применяет npm multer для работы с файлами и хранит файлы в бинарном виде прямо в базе данных а не в отдельной директории на сервере, для работы с ошибками частично используется класс Error от которого наследуются классы возможно возникающих ошибок в этом приложении.
Используемые технологии: JS, Node.js, express, GIT, MongoDB, npm, mongoose, nginx, pm2.
Следующее обновление:
Структурировать код приложения окончательно, дописать все классы ошибок, донастроить cors, создать в базе данных новую модель документа администратора и API регистрации пользователей с правами администратора для возможности удаления чужих карточек.
- Склонировать репозиторий
- Доставить отсутствющие модули npm
npm install
- Запустить локальный сервер
npm run dev