我正在使用NextJS开发一个项目,并将我的数据存储在MongoDB中,并且遇到 MongoDB 连接问题。
连接逻辑很简单:
- 用户连接到页面
- 页面联系我的 API 以获取页面信息
- 我使用中间件的 API 从 MongoDB 获取数据
根据逻辑,我只有一个用户连接到 mongoDB(系统用户)。但问题是我在 MongoDB 中打开了很多连接(见图)。看来我的中间件没有关闭连接。这是我的代码还是 MongoDB 逻辑的问题?
PS 当我关闭我的本地项目时,MongoDB 连接数下降到 0。
这是我的系统连接 MongoDB 的中间件示例。
import { MongoClient } from 'mongodb';
import nextConnect from 'next-connect';
const client = new MongoClient(process.env.mongoApiUrl, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
async function database(req, res, next) {
if (!client.isConnected()) await client.connect();
req.dbClient = client;
req.db = client.db('test');
return next();
}
const middleware = nextConnect();
middleware.use(database);
export default middleware;
根据我的代码,如果我们有一个开放连接 - 使用开放连接。我从这个mongodb 教程中获取了上面的代码
我应该怎么办?