我面临一个奇怪的问题。
下面的代码抛出错误,并且使用箭头功能
UserSchema.pre('save', next => {
const SALT_FACTOR = 5;
if (!this.isModified('password')) return next();
bcrypt.genSalt(SALT_FACTOR, (err, salt) => {
if (err) return next(err);
bcrypt.hash(this.password, salt, null, (err, hash) => {
if (err) return next(err);
this.password = hash;
next();
});
});
});
下面的代码工作正常,并且使用正常功能。
UserSchema.pre('save', function(next) {
const SALT_FACTOR = 5;
if (!this.isModified('password')) return next();
bcrypt.genSalt(SALT_FACTOR, (err, salt) => {
if (err) return next(err);
bcrypt.hash(this.password, salt, null, (err, hash) => {
if (err) return next(err);
this.password = hash;
next();
});
});
});
任何人都有一个想法,为什么箭头功能会抛出错误?
TypeError:this.isModified不是函数