【发布时间】:2015-06-02 23:54:45
【问题描述】:
我在使用 node.js 时遇到了这个代码问题
显然以下承诺没有被执行:
return bloguers.replaceOne({id: bloguer.id}, bloguer,{upsert:true}, function (err){
console.log(err);
res.status(400).end();
});
这是函数的其余部分:
.post(function (req,res){
var bloguers = db.collection('bloguers');
var bloguer = req.body;
console.log(bloguer.id);
bloguers.findOne({id: bloguer.id}).then( function (respon){
if(respon != null){
console.log('dentro if');
return bloguers.replaceOne({id: bloguer.id}, bloguer,{upsert:true}, function (err){
console.log(err);
res.status(400).end();
});
}
else{
return bloguers.insertOne(bloguer).then(function (r){
}, function (err) {
console.log(err);
res.status(400).end();
});
}
}).then(function(r){
res.json(r);
})
});
如您所见,console.log('dentro if') 已执行,但 promise 没有执行。
【问题讨论】: