Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

154
Vistas
Error al publicar datos para servir express usando hash bcrypt para hash contraseña

Intento escribir una Api usando express y sequelize. Estoy escribiendo crear una función de usuario y usar bcrypt para cifrar la contraseña.

 const createNewUser = (data) => { return new Promise(async (resolve, reject) => { try { let check = await checkUserEmail(data.email) if (check === true) { resolve({ errcode: 1, errMessage: 'Your email is already exist!', }) } let hashPassWordFromBcrypt = await hashUserPassWord(data.passWord) await db.User.create({ email: data.email, passWord: hashPassWordFromBcrypt, firstName: data.firstName, lastName: data.lastName, address: data.address, phoneNumber: data.phoneNumber, gender: data.gender === '1' ? true : false, roleId: data.roleId, }) resolve({ errcode: 0, errMessage: 'OK', }) } catch (error) { reject(error) }

}) }

 const salt = bcrypt.genSaltSync(10) const hashUserPassWord = (password) => { return new Promise(async (resolve, reject) => { try { let hashPassWord = await bcrypt.hashSync(password, salt) resolve(hashPassWord) } catch (error) { reject(error) } }) } const checkUserEmail = (email) => { return new Promise(async (resolve, reject) => { try { const user = await db.User.findOne({ where: { email } }) if (user) { resolve(true) } resolve(false) } catch (e) { reject(e) } }) }

Yo uso cartero para probar. El problema es cuando envío datos con un correo electrónico que ya existe . La respuesta: errCode: 1 y errMasege: Your email is already exist pero se creó un nuevo usuario con el mismo correo electrónico . Pero si publico una solicitud con un correo electrónico ya existente y sin contraseña , no se crea ningún nuevo usuario . Ayúdame. Gracias.

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Una sentencia de resolve o reject no sale de la función ejecutora de promesa. Deberías escribir

 if (check === true) { return resolve({ errcode: 1, errMessage: 'Your email is already exist!', }) }

de lo contrario, la operación db.User.create se llevará a cabo posteriormente.

(Tu codigo

 if (user) { resolve(true) } resolve(false)

también parece suponer que resolve sale de la función de ejecutor. Pero en este caso particular, no importa, porque resolve(false) no tiene efecto si la promesa ya se ha resuelto como true ).

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda