Если бы я определил виртуальное поле в своей схеме. Как я могу ссылаться на this._password в UserSchema.path () {} было бы бессмысленно использовать пароль для получения this._password, возвращаемого из моего виртуального метода get , Мне нужно немного уточнить понимание нюансов mon goose. Кстати, это не мой код, это из книги MERN STACK, которую я сейчас читаю. Если я заменю this._password на this.password, он все еще работает, но я не знаю почему. Может ли кто-нибудь помочь мне понять это
UserSchema
.virtual('password')
.set(function(password) {
this._password = password
this.salt = this.makeSalt()
this.hashed_password = this.encryptPassword(password)
})
.get(function() {
return this._password
})
UserSchema.path('hashed_password').validate(function(v) {
if (this._password && this._password.length < 6) {
this.invalidate('password', 'Password must be at least 6 characters.')
}
if (this.isNew && !this._password) {
this.invalidate('password', 'Password is required')
}
}, null)