sql >> Database teknologi >  >> NoSQL >> MongoDB

Struktur af en synkron applikation i Node.js og MongoDb

Hvis du kører node version 7.6 eller nyere, vil en bedre måde være at bruge async await, som fungerer med løfter.

Så din kode vil se ud som

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

Sikker på enhver funktion, du vil afvente, skal loves, som du gjorde med din forbindelsesfunktion (men hvis du bruger https://www.npmjs.com/package/mongodb funktioner, der allerede er lovet)

Opdater

Den bedste måde vil være at bruge mongoose , men hvis du vil arbejde med native mongodb, kan du skrive din mongodb sådan her https://pastebin.com/BHHc0uVN (bare et eksempel)

Du kan udvide dette eksempel, som du vil.

Du kan oprette funktionen createCollection

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

Og brugen vil være:

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

Eller hvis du er sikker på, at init er udført (du kan gøre det én gang før dit hovedscript, som at starte serveren eller hvad du nu gør)

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

Eller hvis du vil arbejde enkelt med samling som i trin 6, skal du tilføje din cas-samling (som bruger i eksempelfil). Men dette kan du også bruge, når din init-funktion er færdig. Så brugen bliver

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



  1. Opret et wildcard-indeks i MongoDB

  2. Sådan opretter du bønnen til FindByIndexNameSessionRepository

  3. Hvorfor er en enkelt Jedis-instans ikke trådsikker?

  4. Sådan starter du en brugerdefineret RQ-arbejder i en Docker-container (Python, Flask og Redis)