Skip to content

Iren4ik/movies-explorer-api

Repository files navigation

Проект: Навигатор фильмов (backend)

Дипломный проект в рамках курса "Веб-разработчик" от Яндекс Практикум. Проект представляет из себя бэкенд часть для проекта Навигатор фильмов. Проект призван закрепить навыки backend-разработки и способы развёртывания приложения на Node.js и Express, а также работе с БД MongoDB и ODM mongoose.

Функциональность проекта

  • В проекте созданы схемы и модели пользователей и карточек с контентом:
    • movie — схема карточки с контентом
    • user — схема пользователя
  • В проекте созданы эндпоинты:
    • /movies — обрабатывает:
      • GET запросы — отдаёт все карточки из БД
      • POST запросы — создаёт новую карточку с контентом
    • /movies/:cardId — обрабатывает DELETE запросы, удаляет карточку по cardId
    • /signin — обрабатывает POST запросы, производит аутентификацию пользователя
    • /signup — обрабатывает POST запросы, производит регистрацию пользователя
    • /signout — обрабатывает POST запросы, производит выход пользователя
    • /users/me — обрабатывает:
      • GET запросы — отдаёт всех информацию о пользователе
      • PATCH запросы — обновляет информацию о пользователе
  • Созданы мидлвары:
    • Авторизации пользователя
    • Валидации поступающих в запросе данных
    • Централизованной обработки ошибок
    • Ограничитель количества запросов (защита от DDoS атак)
    • Логирования
  • Производится валидация поступающих данных:
    • до передачи информации контроллерам с помощью celebrate
    • на уровне схем с помощью validator и встроенных методов mongoose

Директории

  • /controllers — директория с файлами контроллеров
  • /errors — директория с файлами кастомных ошибок
  • /middlewares — директория с мидлвэрами
  • /models — директория с файлами описания схем и моделей
  • /routes — директория с файлами роутера
  • /utils — директория со вспомогательными файлами

Запуск проекта

npm run start — запускает сервер
npm run dev — запускает сервер с hot-reload

Используемые технологии

Чему я научилась

  • Разворачивать приложение на Node.js
  • Использовать в работе фреймворк Express
  • Работать с БД MongoDB
  • Использовать в работе с БД ODM mongoose
  • Создавать схемы и модели для работы с БД
  • Обрабатывать различные виды запросов
  • Обрабатывать ошибки некорректных запросов
  • Валидировать приходящую в запросе информацию
  • Работать с JWT токеном
  • Базовой защите приложения
  • Логированию
  • Деплою проекта на реальный хостинг

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published