ノードバージョン7.6以降を実行している場合は、promiseで機能するasyncawaitを使用することをお勧めします。
したがって、コードは次のようになります
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
確かに、あなたが待つ予定の関数は、接続関数で行ったように約束する必要があります(ただし、を使用している場合は、 https://www.npmjs.com/package/mongodb すでに約束されている機能)
更新
最善の方法は、mongoose を使用することです。 、ただし、ネイティブのmongodbを使用する場合は、次のようにmongodbを記述できます。 https://pastebin.com/BHHc0uVN (ほんの一例)
この例は必要に応じて拡張できます。
関数createCollectionを作成できます
const createCollection = (connection, collectionName) => {
return connection.createCollection(collectionName); // actually i'm not sure that this function exists in mongodb driver
}
使用法は次のようになります:
const mongodbLib = require('./lib/mongodb'); //path to db.js file
mongodbLib.init()
.then(connection => mongodbLib.createCollection(connection, 'cas'))
.then(() => doSmthElse())
または、初期化が完了していることが確実な場合(サーバーの起動など、メインスクリプトの前に一度実行できます)
const mongodbLib = require('./lib/mongodb'); //path to db.js file
const connection = mongodbLib.getConnection();
または、手順6のようにコレクションを簡単に操作する場合は、casコレクションを追加します(サンプルファイルのユーザーなど)。ただし、これはinit関数が実行されたときにも使用できます。したがって、使用法は次のようになります
const mongodbLib = require('./lib/mongodb');
const cas = mongodbLib.collections.cas;
cas().insertMany(docs)
.then()
.catch()