sql >> Database >  >> NoSQL >> MongoDB

Structuur van een synchrone applicatie in Node.js en MongoDb

Als u node-versie 7.6 of hoger gebruikt, is het een betere manier om async wait te gebruiken, wat werkt met beloften.

Uw code ziet er dus uit als

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

Natuurlijk moet elke functie waarop u wacht, worden beloofd zoals u deed met uw verbindingsfunctie (maar als u gebruikt https://www.npmjs.com/package/mongodb functies al beloofd)

Bijwerken

De beste manier is om mangoest te gebruiken , maar als je met native mongodb wilt werken, kun je je mongodb zo schrijven https://pastebin.com/BHHc0uVN (slechts een voorbeeld)

U kunt dit voorbeeld naar wens uitbreiden.

U kunt de functie createCollection maken

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

En het gebruik zal zijn:

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

Of als je zeker weet dat init klaar is (je kunt het een keer doen voordat je hoofdscript begint, zoals het starten van de server of wat je ook doet)

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

Of als u eenvoudig met een verzameling wilt werken zoals in stap 6, voegt u uw cas-verzameling toe (zoals gebruiker in voorbeeldbestand). Maar dit kun je ook gebruiken als je init-functie klaar is. Dus het gebruik zal zijn

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



  1. Krijg de grootte van alle documenten in een query

  2. Hoe om te gaan met circulaire documenten in MongoDB/DynamoDB?

  3. Indexeren van array/subobject in mongoDB veroorzaakt dubbele sleutelfout

  4. Hoe sorteert MongoDB records als er geen sorteervolgorde is opgegeven?