何时关闭MongoDB连接

时间:2018-08-29 00:40:49

标签: javascript node.js database mongodb express

对于上下文,我正在编写ExpressJS应用并使用MongoDB节点驱动程序mongodb

应用程序有时需要快速与远程数据库对话,这取决于用户执行操作的频率。我知道该应用程序每次需要数据时都不应打开和关闭连接。它应该连接一次,并且应该有一个名为db的东西可用于查询,例如:db.collection("users").find(...),并且以后所有的数据库调用都应仅使用该db变量。

但是,如果我部署我的应用程序,我假设server.js在应用程序生命周期开始时仅执行一次。这将意味着在该部署的整个生命周期中仅建立一次连接。

但是这些连接不超时吗?我是否只是检查db var是否为打开的连接,如果不是,则在拨打电话之前重新连接?

令人惊讶的是,我没有找到很多指南,所以我不知道正确的方法,这就是为什么我在这里问。请让我知道是否可以更好地询问这个问题。

1 个答案:

答案 0 :(得分:1)

您不必自己管理连接。 MongoClient.connect调用随附电池。请参见the docs:connect方法包括一个autoReconnect(默认为true),它将尝试保持连接可用。您还可以使用poolSize(默认值为5)为客户端(您可以在整个应用中保存和重复使用)提供使用多个连接的机会。

添加完整示例:

const { MongoClient } = require('mongodb');

const url = 'mongodb://localhost:27017';

MongoClient.connect(url)
    .then(client => runMyApp(client));

function runMyApp(client) {
    // Use client however you like e.g.
    client.db('users').find({})
        .then((results) => console.log(results));
}