Как корректно обрабатывать запросы к MongoDB в Express?

Взаимодействие с MongoDB из Express можно осуществлять с использованием библиотеки Mongoose. Mongoose предоставляет удобный интерфейс для работы с MongoDB при создании моделей данных и выполнении запросов.

В первую очередь, необходимо установить библиотеку Mongoose. Выполните следующую команду в терминале, находясь в корневой директории вашего проекта:

npm install mongoose

После установки Mongoose, добавьте в ваш файл Express приложения соответствующий код для подключения к базе данных.

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/mydatabase', {
  useNewUrlParser: true,
  useUnifiedTopology: true
})
.then(() => console.log('Connected to MongoDB'))
.catch(error => console.log(error));

В этом примере мы используем метод connect для подключения к локальной базе данных mydatabase. Указанные параметры useNewUrlParser и useUnifiedTopology необходимы для корректной обработки URL-адресов подключения и обработки событий MongoDB.

Далее, при необходимости, создайте модель данных. Модель определяет структуру коллекции MongoDB и предоставляет методы для выполнения запросов. Вот пример простой модели:

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String
});

const User = mongoose.model('User', userSchema);

Теперь мы можем использовать модель User для выполнения запросов к базе данных. Вот несколько примеров использования:

1. Создание нового документа:

const newUser = new User({
  name: 'John Doe',
  age: 25,
  email: '[email protected]'
});

newUser.save()
  .then(() => console.log('User created'))
  .catch(error => console.log(error));

2. Получение всех документов:

User.find()
  .then(users => console.log(users))
  .catch(error => console.log(error));

3. Обновление документа:

User.findByIdAndUpdate(userId, { name: 'Jane Doe' })
  .then(() => console.log('User updated'))
  .catch(error => console.log(error));

4. Удаление документа:

User.findByIdAndDelete(userId)
  .then(() => console.log('User deleted'))
  .catch(error => console.log(error));

Это лишь небольшой пример возможностей Mongoose при выполнении запросов к MongoDB с использованием Express. Однако, библиотека предоставляет гораздо больше функциональности, такую как фильтрация, сортировка, счетчики, агрегации и др. Вы можете более подробно ознакомиться с Mongoose в его [официальной документации](https://mongoosejs.com/).