Я хочу вызвать prehook в MongoDB перед сохранением в базе данных.Я использую классы nodejs и es6.Подскажите, пожалуйста, где я ошибся.и, пожалуйста, скажите мне, это правильный способ определения классов.
import mongoose from '../db/db'
import bcrypt from 'bcrypt-nodejs';
let SALT_WORK_FACTOR = 10;
class UserProfile {
userProfile
constructor() {
let userSchema = new mongoose.Schema({
userId: {
type: String,
required: true
},
email: {
type: String,
unique: true,
index: true,
lowercase: true,
required: [true, 'email field is Required']
},
password: {
type: String,
required: [true, 'password field is Required'],
validate: [function (v) {
return v.length >= 8;
}, 'Password min length is 8 chars']
},
created: {
type: Date,
default: Date.now
},
aliasesCount: {
type: Number,
default: 0
}
});
userSchema.pre((next) => {
console.log('here')
let user = this;
console.log(user);
if (!user.isModified('password'))
return next();
bcrypt.genSalt(SALT_WORK_FACTOR, function (err, salt) {
if (err)
return next(err);
bcrypt.hash(user.password, salt, null, function (err, hash) {
if (err)
return next(err);
user.password = hash;
next();
});
});
})
this.userProfile = mongoose.model('User', userSchema);
}
}
export default new UserProfile().userProfile
Но prehook не вызывает, а также не работает уникальная электронная почта.Я использую облако атласа Монго.