https://github.com/alterego10/js-junior-nodejs-api
  
  
    Учебный проект «API на Node.js, Express.js и MongoDB 
    https://github.com/alterego10/js-junior-nodejs-api
  
css docker-compose expressjs html5 javascript mongodb mongoose nodejs postman
        Last synced: 4 months ago 
        JSON representation
    
Учебный проект «API на Node.js, Express.js и MongoDB
- Host: GitHub
- URL: https://github.com/alterego10/js-junior-nodejs-api
- Owner: AlterEgo10
- License: mit
- Created: 2024-08-30T12:15:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-04T12:05:04.000Z (about 1 year ago)
- Last Synced: 2025-04-05T16:48:05.089Z (7 months ago)
- Topics: css, docker-compose, expressjs, html5, javascript, mongodb, mongoose, nodejs, postman
- Language: HTML
- Homepage:
- Size: 1.48 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- 
            Metadata Files:
            - Readme: README.md
- License: LICENSE
 
Awesome Lists containing this project
README
          
# Учебный проект «API на Node.js, Express.js и MongoDB»






Для создания API используется фреймворк Express.js.
В качестве базы данный выбрана MongoDB.
Взаимодействие с базой данных осуществляется через Mongoose ORM.
# Настройка перед запуском
Переименуйте файл `.env.example` в `.env`.
- Добавьте любую последовательность символов в переменную окружения `JWT_SIFN_KEY` (используется для создания и верификации JWT);
- В переменную окружения `MONGO_DB_URL` добавьте строку подключения к базе данных MongoDB.
# Docker для MongoDB
Вы можете использовать `docker-compose.yml` для создания и запуска Docker контейнера с MongoDB.
* Если используется конфигурация из `docker-compose.yml` без изменений, то значение переменной окружения `MONGO_DB_URL` необходимо установить в `mongodb://root:1234@localhost:27017/app?authSource=admin`
# Запуск приложения
```
npm start
```
# Запуск приложения в режиме разработки
В режиме разработки используется npn пакет [nodemon](https://www.npmjs.com/package/nodemon)
```
npm run dev
```
# Запуск приложения в режиме отладки
```
npm run debug # Linux, MacOS
npm run debug-win # Windows
```
# Проверка авторизации пользователя
Проверка авторизации осуществляется двумя способами:
- С помощью пользовательской middleware `./middleware/authMiddleware/authMiddleware.js`;
- С помощью библиотеки Passport.js (стратегия `passport-jwt`).
Также, можно откючить проверку авторизации пользователя.
Переключить способ проверки авторизации пользователя можно в файле `app.js`, выбрав нужный вариант.
```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 
Для тестирования API установите Postman и импортируйте коллекцию из файла `test/postman-data-file.json`.
Также, вы можете указать файл `tests/postman-data-file.json` при запуске тестов через `Collection Runner`. Это необязательно, так как это не влияет на прохождение тестов.
# Код веб-приложения написан с использованием









# Лицензия
