Учебный проект выполненный в рамках курса "Веб-разработчик" от Яндекс Практикум. Проект представляет из себя бэкенд часть для проекта Место также выполненного в рамках указанного выше учебного курса.
Проект был призван изучить основы 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
- nodemon
- Express
- cookie-parser
- MongoDB
- mongoose
- bcryptjs
- jsonwebtoken
- joi
- celebrate
- validator
- express-rate-limit
- helmet
- ESLint
- Разворачивать сервер на Node.js
- Использовать в работе фреймворк Express
- Работать с БД MongoDB
- Использовать в работе с БД ODM mongoose
- Создавать схемы и модели для работы с БД
- Обрабатывать различные виды запросов
- Обрабатывать ошибки некорректных запросов
- Валидировать приходящую в запросе информацию
- Работать с JWT токеном
- Работать с cookies
- Базовой защите приложения
Данила Легкобытов
- e-mail: legkobytov-danila@yandex.ru
- Telegram: @danila_legkobytov
- LinkedIn: in/danila-legkobytov