sql >> Databáze >  >> NoSQL >> MongoDB

Struktura synchronní aplikace v Node.js a MongoDb

Pokud používáte uzel verze 7.6 nebo vyšší, lepší způsob bude použít async wait, který pracuje se sliby.

Váš kód tedy bude vypadat jako

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

Jakákoli funkce, na kterou budete čekat, by měla být jistě slíbena jako u vaší funkce připojení (ale pokud používáte https://www.npmjs.com/package/mongodb již přislíbené funkce)

Aktualizovat

Nejlepší způsob bude použít mongoose , ale pokud chcete pracovat s nativním mongodb, můžete svůj mongodb napsat takto https://pastebin.com/BHHc0uVN (jen příklad)

Tento příklad můžete rozšířit, jak chcete.

Můžete vytvořit funkci createCollection

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

A použití bude:

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

Nebo pokud jste si jisti, že init je hotový (můžete to udělat jednou před hlavním skriptem, jako je spuštění serveru nebo cokoli jiného)

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

Nebo pokud chcete jednoduše pracovat s kolekcí jako v kroku 6, přidejte svou kolekci cas (jako uživatel v ukázkovém souboru). Ale to můžete použít, když je vaše init funkce hotová. Takže použití bude

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



  1. Pole Mongodb $push a $pull

  2. tato procedura existuje v mongodb

  3. Řetězce Redis vs Redis hashe reprezentující JSON:účinnost?

  4. Upozornění na ukončení podpory MongoDB mongoose