Бэкенд для сервиса News Explorer в рамках дипломного проекта на курсе "Веб-разработчик" в Яндекс.Практикуме.
Проект по созданию сервера для сервиса "News Explorer" на основе фреймворка Express.js. Сервер хранит данные пользователей и их сохранённые статьи. На данный момент реализовано:
- запрос на GET /users/me возвращает информацию об авторизованном пользователе (email и имя)
- запрос GET /articles возвращает все сохранённые пользователем статьи;
- запрос POST /articles создаёт статью с переданными в теле keyword, title, text, date, source, link и image;
- запрос DELETE /articles/:articleId удаляет сохранённую статью по _id;
Реализован централизованный обработчик ошибок, пре-валидация запросов посредством Joi и Celebrate, логгирование запросов и ошибок с помощью библиотеки Winston. Авторизация проходит посредством JWT токена, который выдается пользователю на неделю, что исключает необходимость повторной авторизации при каждом входе.
Сервер доступен по адресу - https://api.newsapp.tk/. Удаленный сервер доступен как по http, так и по https протоколу, SSL-сертификат выдан CA Let's Encrypt. Сам сервер расположен по IP-адресу 84.201.154.74 на сервисе Яндекс.Облако.
Для запуска проекта локально:
git clone https://github.com/andrewLapshov/news-explorer-api.git
- клонировать репозиторийnpm install
- установить все необходимые пакеты- Установить MongoDB
mongod
- запустить БДnpm run start
- сервер будет доступен на локальном порте 3000npm run dev
- режим разработки с поддержкой Hot reload, будет доступен на локальном порте 3000