Có, có một sự tương đương rất gần giữa C # / SQL lưu trữ một cá thể SqlConnection duy nhất trong một biến tĩnh và JS / MongoDB lưu trữ một cá thể Db duy nhất trong một biến toàn cục. Mẫu cơ bản cho JS / MongoDB trong Azure Functions là (giả sử bạn đã cập nhật cho async / await - hoặc bạn có thể sử dụng callback theo bài viết được liên kết của mình):
// getDb.js
let dbInstance;
module.exports = async function() {
if (!dbInstance) {
dbInstance = await MongoClient.connect(uri);
}
return dbInstance;
};
// function.js
const getDb = require('./getDb.js');
module.exports = async function(context, trigger) {
let db = await getDb();
// ... do stuff with db ..
};
Điều này có nghĩa là bạn chỉ khởi tạo một đối tượng Db trên mỗi phiên bản máy chủ. Lưu ý rằng đây không phải là một cho mỗi Ứng dụng chức năng - nếu bạn đang sử dụng Gói dịch vụ ứng dụng chuyên dụng thì sẽ có số lượng phiên bản bạn đã chỉ định trong gói và nếu bạn đang sử dụng Gói tiêu dùng thì nó sẽ thay đổi tùy thuộc vào mức độ bận rộn của ứng dụng của bạn.