由于以上答案均未提及如何在没有bluebird或q或其他任何精美的库的情况下执行此操作,因此,我在此添加2美分。
这是使用本机ES6 Promise进行插入的方法
'use strict';
const
constants = require('../core/constants'),
mongoClient = require('mongodb').MongoClient;
function open(){
let url = constants.MONGODB_URI;
return new Promise((resolve, reject)=>{
mongoClient.connect(url, (err, db) => {
if (err) {
reject(err);
} else {
resolve(db);
}
});
});
}
function close(db){
if(db){
db.close();
}
}
let db = {
open : open,
close: close
}
module.exports = db;
我将open()方法定义为返回承诺的方法。要执行插入,这是我的以下代码段
function insert(object){
let database = null;
zenodb.open()
.then((db)=>{
database = db;
return db.collection('users')
})
.then((users)=>{
return users.insert(object)
})
.then((result)=>{
console.log(result);
database.close();
})
.catch((err)=>{
console.error(err)
})
}
insert({name: 'Gary Oblanka', age: 22});
希望能有所帮助。如果您有任何改善建议,请告诉我,因为我愿意改善自己:)