以下代码是控制器的一部分,该控制器可切换帖子的“赞”状态。
它是这样的:
这里的代码是:
// api/posts
exports.postLikes = function(req,res){
var like = new Like({
postId: req.params.postId,
user: req.user._id
});
Like.find()
.and([
{user:req.user._id},
{postId:req.params.postId}
]) // check for existing likes
.exec(function(err, result){
if(!result){ // if there is no result
like.save(function(err){
if(err){res.send(err);}
Post.findById(req.params.postId, function(err,post){
if(err) return res.send(err);
post.likeId.push(like);
post.save(function(err){
if(err) return res.send(err);
res.json({status:'done'})
});
});
});
}else{ //if there is result
res.json({status:'deleted'}) // just says deleted for now
};
});
};
但是,它{status:'deleted'}
在没有结果时返回,并在已有结果时添加其他点赞。
结果返回像存储在MongoDB中一样
{ _id: 555f4ee2f0ea4f8004690ba5,
postId: 555e649b3e5e24f0200f0f16,
user: 555e1c9fd5ec350421ec7cfa,
__v: 0,
created: Sat May 23 2015 00:44:34 GMT+0900}
如果不存在,则返回
[]
我更改了代码以简化测试工作
if(result != null){
res.send(result + "deleted")
}else{
res.send(result + "added")
};
现在两个都说结果+“已删除”
从文档中(我特别强调):
除非将它们定义为虚假,否则所有值都是真实的(即,除了false,0,“”,null,undefined和NaN之外)。
空数组([]
)不是上面的列表上,所以它的truthy。
您可能要返回null
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句