我必须发送我的jwt,但我不想包含密码属性。我做了delete result.password
,但我仍然看到密码在那里。我试过result.password = ''
我可以看到密码被更改,为什么删除不在这里工作?
User.comparePassword(password, user.password , (err, result) => {
if(result === true){
User.getUserById(user._id, (err,result) => {
delete result.password
console.log(result)
const secret = config.secret;
const token = jwt.encode(result, secret);
res.json({success: true, msg: token});
});
}else{
res.json({success: false, msg: 'Error, Incorrect password!'});
}
});
答案 0 :(得分:-1)
结果对象可能已被Object.freeze( result )
调用冻结。您可以使用Object.isFrozen( result ) === true
确认。或者,如果可以删除该属性,delete result.password
将返回true
,否则将false
。