在一個請求裡,要對兩個集合進行操作,比如發一篇貼子,需要對發貼用戶加分,如果加分時發生錯誤,而貼子又已經發了,分數不是就不準確了嗎?這時候該怎麼辦?
範例如下
const Topic=require('../topic');
const User=require('../user');
exports.createTopic=function(req,res){
let topic=new Topic(req.body);
topic.creator=req.session.user;
topic.save(function(err, doc) {
if (err) {
res.sendError(err);
return;
}
User
.update({
$inc: {
'meta.score': config.score.TOPIC,
'meta.topicCount': 1
}
})
.where('_id').equals(req.session.user)
.exec(function(err) {
if (err) {
res.sendError(err);
return;
}
res.json(doc)
});
});
}