An open API service indexing awesome lists of open source software.

https://github.com/pyctam-ac/express-mesto-gha

Темплейт проектной работы курса Веб-разработчик Яндекс.Практикум
https://github.com/pyctam-ac/express-mesto-gha

Last synced: about 2 months ago
JSON representation

Темплейт проектной работы курса Веб-разработчик Яндекс.Практикум

Awesome Lists containing this project

README

          

[![Tests](../../actions/workflows/tests-13-sprint.yml/badge.svg)](../../actions/workflows/tests-13-sprint.yml) [![Tests](../../actions/workflows/tests-14-sprint.yml/badge.svg)](../../actions/workflows/tests-14-sprint.yml)

# Проект Mesto фронтенд + бэкенд

#### [ссылка](https://github.com/Pyctam-AC/express-mesto-gha.git) на репозиторий проекта

---
## Бэкенд часть приложения "места России".
---
Проект представляет из себя бэкенд построенный по принципу rest api.

Выполнено подключение к базе данных с помощью `MongoBD`.

Для базы данных созданы схемы для пользователя и карточек.

Написан код функций-контроллеров для выполнения запросов.

Написан код роутов для выполнения запросов.

Реализована следующая обработка запросов пользователя:
- `POST`-запрос на регистрацию и авторизацию пользователя
- `GET`-запрос всех пользователей в базе данных
- `GET`-запрос конкретного пользователей по `id`
- `PATCH`-запрос на изменение данных пользователя

Обработка запросов карточек:
- `GET`-запрос всех карточек в базе данных
- `POST`-запрос на создание новой карточки
- `PUT`-запрос для лайка карточки
- `DELETE`-запрос для дизлайка карточки
- `DELETE`-запрос для удаления одной карточки

Реализована регистрация пользователя с хешированием пароля.
Реализована авторизация пользователя.
Реализована защита роутов авторизацией с помощью передачи токена.

Реализована централизованная обработка ошибок.

Написан код отдельных `middleware` для авторизации и обработки ошибок.

---

#### Использовались технологии:
- node.js,
- express,
- mongo.db,
- mongoose,
- cookieParser,
- jsonwebtoken,
- bcryptjs

##### Директории

`/routes` — папка с файлами роутера
`/controllers` — папка с файлами контроллеров пользователя и карточки
`/models` — папка с файлами описания схем пользователя и карточки
`/middlewares` — папка с файлами middleware

Остальные директории вспомогательные, создаются при необходимости разработчиком

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

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