平台小问题... ...
发布于 10 年前 作者 tempt 2986 次浏览 最后一次编辑是 8 年前

不知道以前是否有同学发现过,平台在关注一个人后回到首页,右侧并没有及时更新关注数字。 看了下源码,是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;
        }
    });
};
2 回复

去github上发个 PR 吧

好复杂的代码。。。求PR

回到顶部