Om du kör nodversion 7.6 eller högre, är ett bättre sätt att använda async await som fungerar med löften.
Så din kod kommer att se ut 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
Visst, alla funktioner du kommer att vänta på bör utlovas som du gjorde med din connect-funktion (men om du använder https://www.npmjs.com/package/mongodb redan utlovade funktioner)
Uppdatera
Det bästa sättet är att använda mongoose , men om du vill arbeta med native mongodb kan du skriva din mongodb så här https://pastebin.com/BHHc0uVN (bara ett exempel)
Du kan utöka detta exempel som du vill.
Du kan skapa funktionen createCollection
const createCollection = (connection, collectionName) => {
return connection.createCollection(collectionName); // actually i'm not sure that this function exists in mongodb driver
}
Och användningen kommer att vara:
const mongodbLib = require('./lib/mongodb'); //path to db.js file
mongodbLib.init()
.then(connection => mongodbLib.createCollection(connection, 'cas'))
.then(() => doSmthElse())
Eller om du är säker på att init är gjort (du kan göra det en gång innan ditt huvudskript som att starta servern eller vad du än gör)
const mongodbLib = require('./lib/mongodb'); //path to db.js file
const connection = mongodbLib.getConnection();
Eller om du vill enkelt arbeta med samling som i steg 6, lägg till din cas-samling (som användare i exempelfil). Men detta kan du också använda när din init-funktion är klar. Så användningen kommer att vara
const mongodbLib = require('./lib/mongodb');
const cas = mongodbLib.collections.cas;
cas().insertMany(docs)
.then()
.catch()