mi función de registro funcionaba bien. pero ahora no. Tomo error de mala solicitud 400. cuando cambio el código de error a 401 o 500 en el validador, esta vez tomo ese error. y me está enviando todos los errores de validación en cartero. ¿Qué tengo que hacer? imprime {nombre de usuario: 'cem1', correo electrónico: 'cem1@hotmail.com', contraseña: '123456'} por console.log (usuario) en clickSubmitSignup.
{ "error": [ "se requiere nombre de usuario", "el correo electrónico debe contener @", "el correo electrónico debe tener entre 3 y 32 caracteres", "se requiere contraseña", "la contraseña debe contener al menos 6 caracteres", "la contraseña debe contener un número" ] } esta es la salida de la consola xhr.js:220 POST localhost:8080/signup 400 (Solicitud incorrecta) –
const clickSubmitSignup = event => { event.preventDefault() const user = { username, email, password }; console.log(user) axios.post('http://localhost:8080/signup', user) .then(data=> { if(data.error){ setError(data.error) }else{ setError("") setUsername("") setEmail("") setPassword("") setOpen(true) } }) .catch(error=> {setError(error.message)}) }; exports.userSignupValidator = (req, res, next)=>{ req.check('username', 'username is required').notEmpty() req.check('email', 'Email must be between 3 to 32 characters') .matches(/.+\@.+\..+/) .withMessage('email must contain @') .isLength({ min:4, max: 200 }) req.check('password', 'password is required').notEmpty() req.check('password') .isLength({min: 6}) .withMessage('password must contain at least 6 characters') .matches(/\d/) .withMessage('password must contain a number') const errors = req.validationErrors() if(errors){ const firstError = errors.map((error)=>error.msg) return res.status(400).json({error: firstError}) } next()}
exports.signup = async(req, res)=>{ const emailExists = await User.findOne({email: req.body.email}) if(emailExists) return res.status(403).json({ error: "email is taken" }) const userNameExists = await User.findOne({username: req.body.username}) if(userNameExists) return res.status(403).json({ error: "username is taken" }) const user = await new User(req.body) console.log(user) await user.save() res.status(200).json({message : "signup success"}) console.log(req.body)}
router.post('/signup', userSignupValidator, signup)