tengo esta virtual:
userSchema .virtual('password') .set(function setPassword(password) { this._password = password; this.salt = uuidv1(); this.encry_password = this.securePassword(password); }) .get(function getPassword() { return this._password; }); Ahora mi problema es que this.securePassword(password); es una función asíncrona.
async securePassword(plainpassword) { if (!plainpassword) return ''; try { return await argon2.hash(plainpassword); } catch (err) { return ''; } }Ahora si me gusta esto:
userSchema .virtual('password') .set(function setPassword(password) { this._password = password; this.salt = uuidv1(); this.securePassword(password).then((value) => { this.encry_password = value; }); }) .get(function getPassword() { return this._password; });O así :
userSchema .virtual('password') .set(async function setPassword(password) { this._password = password; this.salt = uuidv1(); this.encry_password = await this.securePassword(password) }) .get(function getPassword() { return this._password; });Lo que me sale es este error:
"User validation failed: encry_password: Path `encry_password` is required."¿Alguna solución sobre cómo puedo resolver esta posibilidad con virtuales?