MEAN.js でプロジェクトを実行していますが、次のような問題が発生しています。ユーザーのプロファイルを計算してデータベースに保存したいのですが、ユーザー モデルのメソッドに問題があります。
UserSchema.pre('save', function(next) {
if (this.password && this.password.length > 6) {
this.salt = new Buffer(crypto.randomBytes(16).toString('base64'), 'base64');
this.password = this.hashPassword(this.password);
}
next();
});
変更内容とともにパスワードを送信すると、資格情報が変更され、ユーザーは次回ログインできなくなります。保存する前にユーザー オブジェクトからパスワードを削除したいのですが、できません (以下のコード内のコメントを見てみましょう)。
exports.signin = function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err || !user) {
res.status(400).send(info);
} else {
/* Some calculations and user's object changes */
req.login(user, function(err) {
if(err) {
res.status(400).send(err);
} else {
console.log(delete user.password); // returns true
console.log(user.password); // still returns password :(
//user.save();
//res.json(user);
}
});
}
})(req, res, next);
};
何が問題なのでしょう? delete メソッドは true を返すのに、何も起こらないのはなぜでしょうか? ご協力ありがとうございます :)
ベストアンサー1
ただこうしてください:
user.password = undefined;
の代わりに:
delete user.password;
パスワード プロパティは出力に表示されません。