Se você estiver executando o node versão 7.6 ou superior, a melhor maneira será usar o async await que funciona com promessas.
Então seu código ficará assim
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
Claro que qualquer função que você vai esperar deve ser prometida como você fez com sua função de conexão (mas se você estiver usando https://www.npmjs.com/package/mongodb funções já prometidas)
Atualizar
A melhor maneira será usar mangusto , mas se você quiser trabalhar com mongodb nativo, você pode escrever seu mongodb assim https://pastebin.com/BHHc0uVN (apenas um exemplo)
Você pode expandir este exemplo como desejar.
Você pode criar a função createCollection
const createCollection = (connection, collectionName) => {
return connection.createCollection(collectionName); // actually i'm not sure that this function exists in mongodb driver
}
E o uso será:
const mongodbLib = require('./lib/mongodb'); //path to db.js file
mongodbLib.init()
.then(connection => mongodbLib.createCollection(connection, 'cas'))
.then(() => doSmthElse())
Ou se você tiver certeza de que o init está pronto (você pode fazer isso uma vez antes do script principal, como iniciar o servidor ou o que estiver fazendo)
const mongodbLib = require('./lib/mongodb'); //path to db.js file
const connection = mongodbLib.getConnection();
Ou se você quiser trabalhar simples com a coleção como na etapa 6, adicione sua coleção cas (como usuário no arquivo de exemplo). Mas isso você também pode usar quando sua função init estiver concluída.
const mongodbLib = require('./lib/mongodb');
const cas = mongodbLib.collections.cas;
cas().insertMany(docs)
.then()
.catch()