建议何时关闭nodejs express应用程序中的mongodb连接?

时间:2018-11-27 01:12:08

标签: node.js mongodb express

我正在尝试为基于Express的节点js应用程序编写mongodb连接设置的最有效方法。

我制作了一个负责建立连接的类,如下所示:

class queryToDB {
    async makeDBCall(queryHandler)   {
        let resultSet;
            await MongoClient.connect(config.mongodburl, (err, client) => {
                if(err) throw Error("Database connection cannot be established.");
                resultSet = queryHandler(client.db("dbname"));
                client.close();
            });

        return resultSet
    }
};


export default new queryToDB();

每个查询之后,我将关闭与MongoClient的连接。建议这样做吗?

第二,我将连接作为queryHandler传递给回调。 queryHandler函数看起来像这样:

export const getCall = (id, handler) => {
    return connection => {
        connection.collection('some_schema').findOne({"_id": getObjectId(id)}, (err, result) => {
            if(err) throw new Error(err);
            handler(result);
        });
    }
};

我将结果传递回处理程序,该处理程序又从服务器传递回客户端。这是建立联系和处理结果的有效方法吗?到目前为止,我尚未对此进行任何负载测试,但想确定这种处理查询和结果到mongodb的方法是否存在任何问题。我也知道我正在使用几个回调来实现这一点,这就是为什么我想更多地了解这种方法的性能。我不想使用Mongoose进行这项工作。我正在寻找仅使用MongoClient来实现。 任何形式的反馈意见表示赞赏。谢谢。

0 个答案:

没有答案