gpt4 book ai didi

node.js - nodejs + azure 函数应用程序 - 处理数据库连接的最佳实践?

转载 作者:可可西里 更新时间:2023-11-01 10:37:11 24 4
gpt4 key购买 nike

如果这不是提问的地方,请给我指出正确的论坛(提前道歉)。

我主要想知道,在nodejs应用程序中,是否在azure函数应用程序内实例化全新数据库连接,然后关闭每次当函数应用程序退出时,这是一个坏主意。 (感觉是个坏主意)。

这是标准做法,还是有更好的方法来在无服务器函数的调用之间保持连接处于事件状态?或者这并不重要?

相关连接最多是与 cosmosdb 实例通信的 mongodb 原生驱动程序连接或 mongoose 连接

最佳答案

每次创建新的数据库连接都会导致性能不佳。您可以向数据库客户端添加全局指针以保留连接。如下图所示:

const mongodb = require('mongodb');

const uri = 'mongodb+srv://XYZ/test';

let client = null;

module.exports = function (context, req) {
context.log('Running');

let hasClient = client != null;

if (client == null) {
mongodb.MongoClient.connect(uri, function(error, _client) {
if (error) {
context.log('Failed to connect');
context.res = { status: 500, body: res.stack }
return context.done();
}
client = _client;
context.log('Connected');
query();
});
} else {
query();
}

function query() {
client.db('test').collection('tests').find().toArray(function(error, docs) {
if (error) {
context.log('Error running query');
context.res = { status: 500, body: res.stack }
return context.done();
}

context.log('Success!');
context.res = {
headers: { 'Content-Type': 'application/json' },
body: 'Document Length ' + docs.length + ', Connection reused ' + hasClient
};
context.done();
});
}
};

关于node.js - nodejs + azure 函数应用程序 - 处理数据库连接的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54792287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com