Backend часть сервиса, с помощью которого пользователь может делиться фото с другими. Live demo
- Регистрация
POST: /signup
- Авторизация
POST: /signin
- Обновление данных пользователя
PATCH: /users/me
- Обновление аватара
PATCH: /users/me/avatar
- Получение списка всех пользователей
GET: /users
- Получение пользователя по ID
GET: /users/userID
- Получение информации о текущем пользователе
GET: /users/me
- Получение списка всех карточек
GET: /cards
- Создание карточки
POST: /cards
- Удаление карточки
DELETE: /cards/cardID
- Постановка лайка
PUT: /cards/cardID/likes
- Снятие лайка
DELETE: /cards/cardID/likes
- Центральная обработка ошибок
- Валидация входящих данных
- Защита API авторизацией
Данное серверное приложение предназначено для храниния и обмена файлами с вэб-приложением Mesto.
- Возможность зарегестрироваться и залогиниться с помощью почты и пароля. Токен для авторизации хранится 7 дней.
- У каждого пользователя есть поля name, about, avatar, email, password. Их можно задать при регистрации. Если не задать name, about или avatar, то установятся дефолтные.
- Поля name, about, avatar можно обновить после регистрации.
- Можно создавать карточки. У каждой каточки есть есть поля name, link (ссылка на картинку), owner (id создателя карточки), createdAt (дата создания карточки) и массив likes (лайков карточки, которые могут ставить пользователи).
- Карточки можно создавать и удалять, а также лайкать.
- Поля валидируются (например ссылки или email).
/routes
— папка с файлами роутера
/controllers
— папка с файлами контроллеров пользователя и карточки
/models
— папка с файлами описания схем пользователя и карточки
Остальные директории вспомогательные, создаются при необходимости разработчиком
npm run start
— запускает сервер
npm run dev
— запускает сервер с hot-reload
Репозиторий:
git clone https://github.com/maratdev/express-mesto-gha/