Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
express-validator con mangosta

Estoy desarrollando mi propio sitio web usando (angularjs, bootstrap) para el front-end (node, express) para el back-end (mongodb, mongoose layer) para la base de datos.
Tengo un formulario de registro y en ese formulario quiero verificar que el correo electrónico no se haya tomado cuando alguien intente crear una nueva cuenta, por lo que quiero que mi API de registro verifique si el correo electrónico enviado no se ha tomado antes.

Ahora estoy usando este validador https://github.com/ctavan/express-validator#validation-by-schema y este es mi código:

 var vadlidateRegUser= function (req,res,next) { req.checkQuery('UserName','Username must contain letters and numbers only').isAlphanumeric().notEmpty(); req.checkQuery('Email','Email should have a valid syntax eg: example@example.com') .isEmail().notEmpty(); var error = req.validationErrors(); if(!error){ next(); }else { res.json({success:false, message:error}); } }

Ahora me gustaría verificar con el validador si el correo electrónico es único, algo como esto:

 req.checkQuery('Email','Email should have a valid syntax eg: example@example.com') .isEmail().isUnique(Model Name);

alguna sugerencia ?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

express-validator puede verificar y desinfectar sus datos de entrada, pero no puede saber si un correo electrónico ya está en su base de datos.

Creo que la mejor manera es hacerlo unique en su esquema de mongoose y manejar el error cuando ya existe un correo electrónico:

 let User = new Schema({ firstname: String, lastname: String, email: { type: String, required: true, unique: true, // ensure unique email validate: [ isEmail, "Email should have a valid syntax eg: example@example.com" ] }, // ... })
over 4 years ago · Santiago Trujillo Report

0

Sé que esta pregunta es antigua pero la encontré hoy con la esperanza de ayudarme con el mismo problema, pero logré encontrar la manera de hacerlo, así que quería compartirla para que la siguiente la encuentre.

Ahora express-validator tiene la capacidad de verificar con Promises.

Lo que hice fue crear un archivo separado con mi esquema de mangosta y solicitarlo en mi enrutador, luego durante mis comprobaciones hice esto:

 check('email').custom((value) => { var query = User.find({ email: value}) return query.exec().then(user => { if (user.length > 0) { return Promise.reject('E-mail already in use'); } }); }),

y todo funciona a las mil maravillas!

Espero que esto ayude a alguien más. Si necesita más detalles, solo responda para que pueda agregar más detalles.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!