#javascript #node.js #express #mern #express-validator
#javascript #node.js #экспресс #мерн #экспресс-валидатор
Вопрос:
У меня есть routes/auth.js файл и controller/auth.js файл, содержащий код, как показано ниже :
//routes/auth.js
const express=require('express');
const router=express.Router();
const {check,validationResult} = require('express-validator');
const {signout,signup}=require('../controllers/auth');
router.get("/signout",signout);
router.post("/signup",[
check("name").isLength({min: 3}).withMessage("Name should be of atleast 3 chars"),
check("email").isEmail(),
check("password").isLength({min: 3})
],signup);
module.exports=router;
//controllers/auth.js
const User=require("../models/user");
const {check,validationResult} = require('express-validator');
exports.signup=(req,res)=>{
const errors=validationResult(req);
if(!errors.isEmpty)
{
return res.status(422).json({
error: errors.array()[0].msg
})
}
const user=new User(req.body);
user.save((err,user)=>{
if(err){
return res.status(400).json({
err: "There is an error"
});
}
else
{
return res.json({
name: user.name,
email: user.email,
id: user._id
});
}
})
};
Экспресс-валидатор не работает. Когда я отправляю запрос post через PostMan, объект с именем меньше 3 символов сохраняется в базе данных. Сообщение об ошибке не отображается. Пожалуйста, помогите с этим.
Комментарии:
1. попробуйте
if(!errors.isEmpty())
?2. Спасибо, чувак, это полностью сработало. Я не знаю, как я пропустил такую простую вещь. Еще раз спасибо. Приветствия.