Nếu bạn đang chạy phiên bản nút 7.6 trở lên, cách tốt hơn sẽ là sử dụng async await hoạt động với các hứa hẹn.
Vì vậy, mã của bạn sẽ giống như
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
Chắc chắn rằng bất kỳ chức năng nào bạn đang chờ đợi sẽ được quảng cáo như bạn đã làm với chức năng kết nối của mình (nhưng nếu bạn đang sử dụng https://www.npmjs.com/package/mongodb các chức năng đã được quảng bá)
Cập nhật
Cách tốt nhất là sử dụng mongoose , nhưng nếu bạn muốn làm việc với mongodb gốc, bạn có thể viết mongodb của mình như thế này https://pastebin.com/BHHc0uVN (chỉ là một ví dụ)
Bạn có thể mở rộng ví dụ này nếu bạn muốn.
Bạn có thể tạo hàm createCollection
const createCollection = (connection, collectionName) => {
return connection.createCollection(collectionName); // actually i'm not sure that this function exists in mongodb driver
}
Và cách sử dụng sẽ là:
const mongodbLib = require('./lib/mongodb'); //path to db.js file
mongodbLib.init()
.then(connection => mongodbLib.createCollection(connection, 'cas'))
.then(() => doSmthElse())
Hoặc nếu bạn chắc chắn rằng init đã hoàn tất (bạn có thể thực hiện một lần trước khi tập lệnh chính như khởi động máy chủ hoặc bất cứ điều gì bạn đang làm)
const mongodbLib = require('./lib/mongodb'); //path to db.js file
const connection = mongodbLib.getConnection();
Hoặc nếu bạn muốn làm việc đơn giản với bộ sưu tập như trong bước 6, hãy thêm bộ sưu tập cas của bạn (như người dùng trong tệp ví dụ). Nhưng điều này bạn có thể sử dụng khi chức năng init của bạn cũng hoàn thành.
const mongodbLib = require('./lib/mongodb');
const cas = mongodbLib.collections.cas;
cas().insertMany(docs)
.then()
.catch()