es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo utilizar la misma conexión de MongoDB a lo largo de la aplicación?

Estoy intentando este enfoque, pero no estoy seguro/a de si esto crea una nueva conexión cada vez.

getMongoClient.js

const { MongoClient } = require('mongodb');
const serverURL = process.env['mongoServerURL'];

module.exports = async function (){

    const mongoClient = await new MongoClient(serverURL);
    await mongoClient.connect();
    return mongoClient;
}

luego en app.js

const getMongoClient = require("./_helpers/getMongoClient.js");
module.exports = getMongoClient();

luego en un archivo service.js de la base de datos

async function syncGuilds(client){

    const mongoClient = await require("../app.js");
     ... algunas operaciones de la base de datos
}
module.exports = syncGuilds;
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El módulo getMongoClient.js exporta una función que crea un nuevo objeto MongoClient y se conecta al servidor de MongoDB especificado en la variable serverURL. Cuando se llama a la función getMongoClient(), se creará un nuevo objeto MongoClient y se conectará al servidor cada vez.

    Sin embargo, en el archivo app.js, module.exports se establece como el resultado de llamar a getMongoClient(), lo que significa que la conexión se establece solo una vez cuando la aplicación se inicia.

    En el archivo database service.js, syncGuilds() requiere app.js cada vez que se llama, lo que a su vez devolverá el mismo objeto MongoClient que se creó durante la inicialización de la aplicación. Por lo tanto, no se crearán nuevas conexiones cada vez que se llame a esta función.

    En conclusión, el enfoque descrito en los bloques de código debería resultar en una única conexión establecida con el servidor de MongoDB que se reutilizará a lo largo de la vida útil de la aplicación.

Comments are closed.