Als u node-versie 7.6 of hoger gebruikt, is het een betere manier om async wait te gebruiken, wat werkt met beloften.
Uw code ziet er dus uit als
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
Natuurlijk moet elke functie waarop u wacht, worden beloofd zoals u deed met uw verbindingsfunctie (maar als u gebruikt https://www.npmjs.com/package/mongodb functies al beloofd)
Bijwerken
De beste manier is om mangoest te gebruiken , maar als je met native mongodb wilt werken, kun je je mongodb zo schrijven https://pastebin.com/BHHc0uVN (slechts een voorbeeld)
U kunt dit voorbeeld naar wens uitbreiden.
U kunt de functie createCollection maken
const createCollection = (connection, collectionName) => {
return connection.createCollection(collectionName); // actually i'm not sure that this function exists in mongodb driver
}
En het gebruik zal zijn:
const mongodbLib = require('./lib/mongodb'); //path to db.js file
mongodbLib.init()
.then(connection => mongodbLib.createCollection(connection, 'cas'))
.then(() => doSmthElse())
Of als je zeker weet dat init klaar is (je kunt het een keer doen voordat je hoofdscript begint, zoals het starten van de server of wat je ook doet)
const mongodbLib = require('./lib/mongodb'); //path to db.js file
const connection = mongodbLib.getConnection();
Of als u eenvoudig met een verzameling wilt werken zoals in stap 6, voegt u uw cas-verzameling toe (zoals gebruiker in voorbeeldbestand). Maar dit kun je ook gebruiken als je init-functie klaar is. Dus het gebruik zal zijn
const mongodbLib = require('./lib/mongodb');
const cas = mongodbLib.collections.cas;
cas().insertMany(docs)
.then()
.catch()