MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Réutilisation des connexions de base de données avec Azure Functions à l'aide de Javascript

Oui, il existe une équivalence très proche entre C#/SQL stockant une seule instance SqlConnection dans une variable statique et JS/MongoDB stockant une seule instance Db dans une variable globale. Le modèle de base pour JS/MongoDB dans Azure Functions est (en supposant que vous êtes à jour pour async/wait - vous pouvez également utiliser des rappels selon votre article lié) :

// 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 ..
};

Cela signifie que vous n'instanciez qu'un seul objet Db par instance d'hôte. Notez qu'il ne s'agit pas d'une application par fonction - si vous utilisez un plan de service d'application dédié, il y aura le nombre d'instances que vous avez spécifiées dans le plan, et si vous utilisez un plan de consommation, cela variera en fonction de l'occupation de votre application.