mongo db next js закрыть соединение

Подключение к БД (из документации nextjs)

import { MongoClient } from 'mongodb'

const { MONGODB_URI, MONGODB_DB } = process.env

if (!MONGODB_URI) {
  throw new Error(
    'Please define the MONGODB_URI environment variable inside .env.local'
  )
}

if (!MONGODB_DB) {
  throw new Error(
    'Please define the MONGODB_DB environment variable inside .env.local'
  )
}

/**
 * Global is used here to maintain a cached connection across hot reloads
 * in development. This prevents connections growing exponentially
 * during API Route usage.
 */
let cached = global.mongo

if (!cached) {
  cached = global.mongo = { conn: null, promise: null }
}

export async function connectToDatabase() {

    const opts = {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    }

    cached.promise = MongoClient.connect(MONGODB_URI, opts).then((client) => {
      return {
        client,
        db: client.db(MONGODB_DB),
      }
    })

  cached.conn = await cached.promise
  return cached.conn
}

API EndPoint

export default async (req, res) => {
    const { db, client } = await connectToDatabase();
    const data= await db
        .collection("testColl")
        .limit(4)
        .toArray();
    client.close(); // Если тут закрываю client, то при обновлении страницы получаю MongoError: Topology is closed, please connect
    return res.status(200).send(data);
};

Как закрыть соединение после запроса, чтобы при обновлении страницы не было ошибки "MongoError: Topology is closed, please connect", а появлялось новое подключение?


Ответы (0 шт):