mongoDB连接过多,如何正确关闭它们?

时间:2019-04-17 19:48:44

标签: javascript node.js mongodb express

我在带有ExpressJS的NodeJS项目中使用MongoDB。和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); 
  }
})

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

0 个答案:

没有答案