MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Aufbau einer synchronen Anwendung in Node.js und MongoDb

Wenn Sie die Node-Version 7.6 oder höher ausführen, ist es besser, async await zu verwenden, das mit Promises funktioniert.

Ihr Code sieht also so aus:

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

Sicherlich sollte jede Funktion, die Sie erwarten, wie bei Ihrer Verbindungsfunktion versprochen werden (aber wenn Sie verwenden). https://www.npmjs.com/package/mongodb bereits versprochene Funktionen)

Aktualisieren

Der beste Weg ist die Verwendung von mongoose , aber wenn Sie mit nativer Mongodb arbeiten möchten, können Sie Ihre Mongodb wie folgt schreiben:https://pastebin.com/BHHc0uVN (nur ein Beispiel)

Sie können dieses Beispiel beliebig erweitern.

Sie können die Funktion createCollection

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

Und die Verwendung wird sein:

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

Oder wenn Sie sicher sind, dass init fertig ist (Sie können es einmal tun, bevor Sie das Hauptskript starten, wie z. B. den Server starten oder was auch immer Sie tun)

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

Oder wenn Sie einfach mit der Sammlung wie in Schritt 6 arbeiten möchten, fügen Sie Ihre cas-Sammlung hinzu (wie Benutzer in der Beispieldatei). Aber das können Sie auch verwenden, wenn Ihre Init-Funktion fertig ist. Die Verwendung wird also sein

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