Skip to content

Проект бэкенда для проекта Место

Notifications You must be signed in to change notification settings

Bjorn86/express-mesto-gha

Repository files navigation

Tests

Проект: Место (backend)

Учебный проект выполненный в рамках курса "Веб-разработчик" от Яндекс Практикум. Проект представляет из себя бэкенд часть для проекта Место также выполненного в рамках указанного выше учебного курса.

Оглавление

Обзор проекта

Задачи проекта

Проект был призван изучить основы backend-разработки, и способы развёртывания сервера на Node.js и Express, а также работе с БД MongoDB и ODM mongoose.

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

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

Директории проекта

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

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

  • npm lint — запускает проверку линтером
  • npm run start — запускает сервер
  • npm run dev — запускает сервер с hot-reload

Ссылки

Ссылка на репозиторий проекта

Ход выполнения проекта

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

Чему я научился работая над проектом

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

Автор

Данила Легкобытов

About

Проект бэкенда для проекта Место

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published