Простое руководство по использованию Mongoose ORM для MongoDb с последней версией фреймворка Next.js.

1. Создайте проект Next.js 11.

Самый простой способ создать проект Next.js - использовать create-next-app. Выполните следующую команду в своем терминале.

npx create-next-app my-mongoose-app-name

После завершения процесса откройте каталог проекта с помощью редактора кода.

2. Добавьте переменную среды

Нам нужна только одна переменная, и это будет MONGODB_URI. Создайте файл с именем .env.local в каталоге вашего проекта. Я использую здесь свою локальную базу данных, вы можете изменить значение на свое.

3. Установите Mongoose.

Теперь давайте установим пакет mongoose npm.

npm i mongoose

4. Добавьте файл подключения.

Теперь нам нужен файл для инициализации соединения с базой данных. Мы также кешируем соединение глобально. Давайте создадим файл lib/dbConnect.js и вставим следующий код.

5. Создайте модель мангуста.

Давайте создадим модель Mongoose, чтобы мы могли вставить некоторые данные в нашу базу данных. Вы можете использовать любую модель по своему усмотрению. Ниже приведен пример простой модели User с именем и полем электронной почты. Обратите внимание на последнюю строку, экспорт отличается от того, как мы делали бы это в Express. Это предотвращает перекомпиляцию модели Mongoose. Вы можете создать этот файл как /models/User.js.

6. Создайте маршруты API.

В приведенном ниже примере создается конечная точка в /api/users.js. Он охватывает два метода - GET и POST. Метод GET выбирает всех пользователей в базе данных, а метод POST создает пользователя с параметрами, указанными в req.body. Обратите внимание, что мы делаем dbConnect() перед выполнением запросов к базе данных.

7. Проверьте свои маршруты!

Это будет наш последний шаг. Чтобы протестировать нашу конечную точку, мы можем отправлять запросы через любой HTTP-клиент по вашему выбору. Ниже приведены команды CURL, которые вы можете использовать, чтобы быстро проверить, все ли работает.

POST в первую очередь, поэтому у вас есть данные для получения с помощью GET

POST - CREATE NEW USERS
EXAMPLE REQUEST
curl --request POST \
  --url http://localhost:3000/api/users \
  --header 'Content-Type: application/json' \
  --data '{
 "name": "John Doe",
 "email": "[email protected]"
}'
EXAMPLE RESPONSE
{
  "success": true,
  "data": {
    "_id": "6112570b245e401eb895c35d",
    "name": "John Doe",
    "email": "[email protected]",
    "__v": 0
  }
}
GET - GET ALL USERS
EXAMPLE REQUEST
curl --request GET \
  --url http://localhost:3000/api/users \
  --header 'Content-Type: application/json'
EXAMPLE RESPONSE
{
  "success": true,
  "data": [
    {
      "_id": "6112570b245e401eb895c35d",
      "name": "John Doe",
      "email": "[email protected]",
      "__v": 0
    }
  ]
}

🥳 Вот и все! Все готово! Веселитесь с Мангустом! Оставьте комментарий, если хотите увидеть больше статей о Next.js. Разве мы не просто ❤️ Next.js? Я знаю, что!

Полное репо проекта:

Https://github.com/skolhustick/nextjs-mongoose-example