首页 > 解决方案 > mongoDB太多连接如何正确关闭它们?

问题描述

我在我的 NodeJS 项目中使用 MongoDB 和 ExpressJS。和 mongoDB npm 依赖项。奇怪的是,它每次在执行 POST 或 GET 请求时都会打开一个新连接,几次后我收到以下错误:

已配置限制的连接百分比已超过 80

像这样打开连接:

const mongodb = require ('mongodb');

module.exports = {
  dbConn: async function(table) { 
    const client = await mongodb.MongoClient.connect
    ('mongodb+srv://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.mongodb.net/test?retryWrites=true', {
      useNewUrlParser: true
    });

    return client.db('test').collection(table);
  }
}

执行 GET 或 POST 请求:

const db = require('./db');

router.get('/:id', async (req, res) => {
  try{ 
    const keywords = await db.dbConn('kw_data');
    data = await keywords.findOne({hash: req.params.id});
    if(data != null){
      res.status(200).send(data);
    }
    else{
      res.status(200).send({"result": false});
    }
  }
  catch(e){
    res.status(400).send(e);
    res.status(404).send(e);
    res.status(500).send(e); 
  }
})

是这样我可以以某种方式关闭连接还是让它保持打开状态?

标签: javascriptnode.jsmongodbexpress

解决方案


推荐阅读