Ja, er is een zeer nauwe gelijkwaardigheid tussen C#/SQL die een enkele SqlConnection-instantie opslaat in een statische variabele en JS/MongoDB die een enkele Db-instantie opslaat in een globale variabele. Het basispatroon voor JS/MongoDB in Azure Functions is (ervan uitgaande dat u up-to-date bent voor async/wait - u kunt ook callbacks gebruiken volgens uw gekoppelde artikel):
// 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 ..
};
Dit betekent dat u slechts één Db-object per hostinstantie kunt instantiëren. Let op:dit is niet één per functie-app - als u een speciaal app-serviceplan gebruikt, is er het aantal instanties dat u in het plan hebt opgegeven, en als u een verbruiksplan gebruikt, zal dit variëren afhankelijk van hoe druk je app is.