不知道以前是否有同学发现过,平台在关注一个人后回到首页,右侧并没有及时更新关注数字。 看了下源码,是un_follow方法有问题,改成下面这样就OK了。
/**
* 取消关注
* [@param](/user/param) req
* [@param](/user/param) res
* [@param](/user/param) next
*/
exports.un_follow = function (req, res, next) {
if (!req.session || !req.session.user) {
res.send('forbidden!');
return;
}
var follow_id = req.body.follow_id;
User.getUserById(follow_id, function (err, user) {
if (err) {
return next(err);
}
if (!user) {
res.json({status: 'failed'});
return;
}
// 删除关系
Relation.remove(req.session.user._id, user._id, function (err) {
if (err) {
return next(err);
}
res.json({status: 'success'});
});
User.getUserById(req.session.user._id, function (err, me) {
if (err) {
return next(err);
}
me.following_count -= 1;
if (me.following_count < 0) {
me.following_count = 0;
}
me.save();
});
user.follower_count -= 1;
if (user.follower_count < 0) {
user.follower_count = 0;
}
user.save();
req.session.user.following_count -= 1;
if (req.session.user.following_count < 0) {
req.session.user.following_count = 0;
}
});
};