我有以下代碼來保存配置文件,只有在提供舊密碼和新密碼時才更新密碼。舊密碼在模型內被檢查,所以我得到回調中的檢查值。node.js:在條件回調中保存其值更改的對象
下面的代碼的問題是,我必須在回調和回調後調用user.save。 什麼是重構最好的辦法,THX
user.firstName = req.body.firstName;
user.lastName = req.body.lastName;
if (req.body.password)
if (req.body.newPassword)
//we want to change password
user.comparePassword(req.body.password, function(err, isMatch) {
if (!isMatch) {
return res.status(401).send({
message: 'Mot de passe actuel invalide'
});
}
user.password = req.body.newPassword;
user.save(function(err) {
if (err)
res.status(500).send({
message: "Une erreur est survenue lors de la mise à jour du profil"
});
var profile = {
displayName: getDisplayName(user),
pictureUrl: user.pictureUrl || config.defaultProfilePic,
};
profile.lastName = user.lastName;
profile.firstName = user.firstName;
res.send(profile);
});
});
user.save(function(err) {
if (err)
res.status(500).send({
message: "Une erreur est survenue lors de la mise à jour du profil"
});
var profile = {
displayName: getDisplayName(user),
pictureUrl: user.pictureUrl || config.defaultProfilePic,
};
profile.lastName = user.lastName;
profile.firstName = user.firstName;
res.send(profile);
});
編輯:我創建了一個功能saveUser(用戶,RES),我稱之爲兩次。 這是最好的解決方案嗎?
首先,你確定你沒有忘記一些括號嗎?另外,我不明白你爲什麼要做user.save? – tomsoft