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