https://github.com/dmitry145528/movies-explorer-api
Movies Explorer - это серверная часть приложения Movies Explorer, предоставляющая API для работы с пользователями и карточками. Реализованная на Node.js и MongoDB, она обеспечивает взаимодействие с базой данных и обработку запросов клиентской части приложения Movies Explorer.
https://github.com/dmitry145528/movies-explorer-api
celebrate cookie-parser cors dotenv express helmet joi-validation jwt-authentication mongodb nodejs rate-limiter validation
Last synced: 2 months ago
JSON representation
Movies Explorer - это серверная часть приложения Movies Explorer, предоставляющая API для работы с пользователями и карточками. Реализованная на Node.js и MongoDB, она обеспечивает взаимодействие с базой данных и обработку запросов клиентской части приложения Movies Explorer.
- Host: GitHub
- URL: https://github.com/dmitry145528/movies-explorer-api
- Owner: Dmitry145528
- Created: 2024-02-06T13:41:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-18T11:00:14.000Z (about 2 years ago)
- Last Synced: 2025-10-21T23:50:33.550Z (8 months ago)
- Topics: celebrate, cookie-parser, cors, dotenv, express, helmet, joi-validation, jwt-authentication, mongodb, nodejs, rate-limiter, validation
- Language: JavaScript
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Дипломный проект: Movies Explorer бэкенд.
Movies Explorer - это серверная часть приложения Movies Explorer, предоставляющая API для работы с пользователями и карточками. Реализованная на Node.js и MongoDB, она обеспечивает взаимодействие с базой данных и обработку запросов клиентской части приложения Movies Explorer.
## Структура проекта:
* [Movies Explorer (версия React)](https://github.com/Dmitry145528/movies-explorer-frontend)
* Movies Explorer (версия для сервера) - этот репозиторий
## Что сделал:
* Реализовал на Node.js и Express.js, сервер обрабатывает запросы, взаимодействует с базой данных MongoDB и обрабатывает ошибки.
* Настроил использование cookie для хранения сессионных данных пользователей, обеспечивая безопасность и аутентификацию.
## Реализованный функционал:
* Реализованы роуты и контроллеры для работы с пользователями (регистрация, авторизация, получение информации о текущем пользователе, обновление данных пользователя).
* Реализована аутентификация с использованием JWT (JSON Web Token) для безопасной передачи информации между клиентом и сервером.
* Реализованы роуты и контроллеры для работы с карточками (добавление, получение, удаление карточек).
* Реализованы мидлвары для обработки запросов, аутентификации и обработки ошибок.
* Взаимодействие с базой данных MongoDB для сохранения пользовательских данных и фильмов.
## Технологии:
* Node.js: Среда выполнения JavaScript, используемая для разработки серверной части приложения.
* Express.js: Веб-фреймворк для Node.js, облегчающий создание API и обработку HTTP-запросов.
* MongoDB: Документоориентированная NoSQL база данных, используемая для хранения пользовательских данных и информации о фильмах.
* Mongoose: ODM (Object Data Modeling) библиотека для работы с MongoDB, обеспечивающая структурированный доступ к данным.
* JWT (JSON Web Token): Стандарт авторизации для безопасной передачи информации между клиентом и сервером.
* Cors (Cross-Origin Resource Sharing): Механизм, позволяющий веб-страницам получать доступ к ресурсам с других источников в интернете.
* Helmet: Промежуточное ПО для Express, обеспечивающее базовую защиту от некоторых известных уязвимостей HTTP-заголовков.
* Celebrate: Библиотека для валидации и санации данных запроса на основе схемы с использованием Joi.
* Rate Limiter: Промежуточное ПО для Express, ограничивающее количество запросов с одного IP-адреса.
## Инструкция по запуску:
1. **Клонируйте репозиторий:**
```bash
git clone git@github.com:Dmitry145528/movies-explorer-api.git
git clone https://github.com/Dmitry145528/movies-explorer-api.git
2. **Перейдите в директорию проекта, выполнив команду:**
`cd movies-explorer-api`
3. **Установите все необходимые зависимости проекта, выполнив команду:**
`npm install`
4. **Создайте файл .env в корневой директории проекта и добавьте следующие переменные среды:**
`PORT=3000`
`MONGO_URL=mongodb://127.0.0.1:27017/bitfilmsdb`
5. **Вы можете запустить сервер:**
`npm run start`
5. **Вы можете запустить сервер с hot-reload:**
`npm run dev`
## Требования
Перед началом убедитесь, что у вас установлены:
- [Node.js](https://nodejs.org/)
- [MongoDB](https://www.mongodb.com/)
## Статус разработки:
✅ _Завершено_