Для создания API используется фреймворк Express.js. В качестве базы данных выбрана MongoDB. Взаимодействие с базой данных осуществляется через Mongoose ORM.
Переименуйте файл .env.example
в .env
.
- Добавьте любую последовательность символов в переменную окружения
JWT_SIFN_KEY
(используется для создания и верификации JWT); - В переменную окружения
MONGO_DB_URL
добавьте строку подключения к базе данных MongoDB.
Вы можете использовать docker-compose.yml
для создания и запуска Docker контейнера с MongoDB.
- Если используется конфигурация из
docker-compose.yml
без изменений, то значение переменной окруженияMONGO_DB_URL
необходимо установить вmongodb://root:1234@localhost:27017/app?authSource=admin
.
npm start
В режиме разработки используется npm пакет nodemon.
npm run dev
npm run debug # Linux, MacOS
npm run debug-win # Windows
Проверка авторизации осуществляется двумя способами:
- С помощью пользовательской middleware
./middleware/authMiddleware.js
; - С помощью библиотеки Passport.js (стратегия
passport-jwt
).
Также, можно отключить проверку авторизации пользователя.
Переключить способ проверки авторизации пользователя можно в файле app.js
, выбрав нужный вариант.
app.use('/api/projects', passport.authenticate('jwt', { session: false }), routerProjects); // Passport.js
// app.use('/api/projects', authMiddleware, routerProjects); // Пользовательская middleware
// app.use('/api/projects', routerProjects); // Без авторизации
Для тестирования API установите Postman и импортируйте коллекцию из файла tests/postman-collection.json
.
Также, вы можете указать файл tests/postman-data-file.json
при запуске тестов через Collection Runner
. Это необязательно, так как это не влияет на прохождение тестов.