sql >> Base de Datos >  >> NoSQL >> MongoDB

Reutilización de conexiones de base de datos con funciones de Azure mediante Javascript

Sí, existe una equivalencia muy estrecha entre C#/SQL que almacena una única instancia de SqlConnection en una variable estática y JS/MongoDB que almacena una única instancia de base de datos en una variable global. El patrón básico para JS/MongoDB en Azure Functions es (suponiendo que esté actualizado para async/await; como alternativa, puede usar devoluciones de llamada según su artículo vinculado):

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

Esto significará que solo creará una instancia de un objeto Db por instancia de host. Tenga en cuenta que esto no es uno por aplicación de función:si está usando un plan de servicio de aplicaciones dedicado, habrá la cantidad de instancias que especificó en el plan, y si está usando un plan de consumo, entonces variará dependiendo de cuán ocupada esté tu aplicación.