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()