Cómo verificar el nombre de usuario y el correo electrónico en la validación de nestjs. La función asíncrona espera findbyusername y luego nunca alcanza la condición else.
Estoy tratando de crear un método de validación para verificar si el valor userNameorEmail en el campo nombre de usuario o correo electrónico es nombre de usuario o correo electrónico, pero parece que la función nunca llega a la declaración else. Simplemente arroja el error cuando then hago y catch . ¿Cómo puedo hacer que funcione? Gracias por su ayuda de antemano.
async validateUser(userNameorEmail: string, pass: string): Promise<any> { const resultByUsername = await this.usersService.findbyUsername(userNameorEmail); if (resultByUsername && resultByUsername.password === pass) { const { password, ...result } = resultByUsername; return result; } else { const resultByEmail = await this.usersService.findbyEmail(userNameorEmail); if (resultByEmail && resultByEmail.password === pass) { const { password, ...result } = resultByEmail; return result; } }En mi modelo de usuario
async findbyUsername(uNameorEmail: string) { const user = await this.userModel .findOne({ username: uNameorEmail }) .lean() .exec(); if (!user) { throw new NotFoundException(); } return user; } async findbyEmail(uNameorEmail: string) { const user = await this.userModel .findOne({ email: uNameorEmail }) .lean() .exec(); if (!user) { throw new NotFoundException(); } return user; }