我有两个类似的代码,我认为它可能是可重用的,但不确定从哪里开始。如果您可以显示给我和示例,或将我链接到一篇文章,那将很好。

我有一个更新用户信息的块。

exports.updateUser = function(req, res, next) {
    User.findById(req.params.id, function(err, user) {
        if (err) {
            return next(err);
        }
        user.email = req.body.email || '';
        user.firstname = req.body.firstname || '';
        user.lastname = req.body.lastname || '';

        user.save(function(err) {
            if (err) {
                return next(err);
            }
            req.flash('success', {
                msg: 'User information updated.'
            });
            res.redirect('/users');
        });
    });
};


这个区块会更新我的用户帐户信息。

exports.updateAccount = function(req, res, next) {
    User.findById(req.user.id, function(err, user) {
        if (err) {
            return next(err);
        }
        user.email = req.body.email || '';
        user.firstname = req.body.firstname || '';
        user.lastname = req.body.lastname || '';

        user.save(function(err) {
            if (err) {
                return next(err);
            }
            req.flash('success', {
                msg: 'Profile information updated.'
            });
            res.redirect('/account');
        });
    });
};


如何进行可重用的更新。

最佳答案

看起来只有2个不同,它们是字符串。将它们作为参数传递。

exports.updateAccount = function(req, res, next, path, message) { //add 2 parameters
    User.findById(req.user.id, function(err, user) {
        if (err) {
            return next(err);
        }
        user.email = req.body.email || '';
        user.firstname = req.body.firstname || '';
        user.lastname = req.body.lastname || '';

        user.save(function(err) {
            if (err) {
                return next(err);
            }
            req.flash('success', {
                msg: message //message param
            });
            res.redirect(path); //path param
        });
    });
};

10-06 11:51