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

Structure d'une application synchrone en Node.js et MongoDb

Si vous utilisez la version 7.6 ou supérieure du nœud, le meilleur moyen sera d'utiliser l'attente asynchrone qui fonctionne avec des promesses.

Ainsi, votre code ressemblera à

const start = async() => {
  const connect = await connectToMongoDb(url);
  const cas = await connect.createYourCollection();
  const isPageHasUpdates = oneMoreFunction(); // i don't know how you gonna check it
  if(isPageHasUpdates) {
      await step 4;
      await step 5;
      await step 6;
  }
  await step 7
  return something; // if you want
}

start()
.then(res => console.log(res)) // here you can use result of your start function if you return something or skip this then
.catch(err => console.log(err)); // do something with your error

Bien sûr, toute fonction que vous allez attendre doit être promise comme vous l'avez fait avec votre fonction de connexion (mais si vous utilisez https://www.npmjs.com/package/mongodb fonctions déjà promises)

Mettre à jour

Le meilleur moyen sera d'utiliser mongoose , mais si vous voulez travailler avec mongodb natif, vous pouvez écrire votre mongodb comme ceci https://pastebin.com/BHHc0uVN (juste un exemple)

Vous pouvez développer cet exemple comme vous le souhaitez.

Vous pouvez créer la fonction createCollection

const createCollection = (connection, collectionName) => {
  return connection.createCollection(collectionName); // actually i'm not sure that this function exists in mongodb driver
}

Et l'utilisation sera :

const mongodbLib = require('./lib/mongodb'); //path to db.js file
mongodbLib.init()
  .then(connection => mongodbLib.createCollection(connection, 'cas'))
  .then(() => doSmthElse())

Ou si vous êtes sûr que l'initialisation est terminée (vous pouvez le faire une fois avant le script principal, comme démarrer le serveur ou quoi que vous fassiez)

const mongodbLib = require('./lib/mongodb'); //path to db.js file
const connection = mongodbLib.getConnection();

Ou si vous voulez travailler simplement avec la collection comme à l'étape 6, ajoutez votre collection cas (comme user dans le fichier d'exemple). Mais cela, vous pouvez l'utiliser lorsque votre fonction init est également terminée. Ainsi, l'utilisation sera

const mongodbLib = require('./lib/mongodb');
const cas = mongodbLib.collections.cas;
cas().insertMany(docs)
  .then()
  .catch()