Node.js Express验证器没有产生错误,即使它应该产生错误
我使用的是express validator软件包,我尝试在将数据插入数据库之前验证数据,但由于某些原因,数据未被验证并直接插入数据库 这是我的代码文件Node.js Express验证器没有产生错误,即使它应该产生错误,node.js,express,Node.js,Express,我使用的是express validator软件包,我尝试在将数据插入数据库之前验证数据,但由于某些原因,数据未被验证并直接插入数据库 这是我的代码文件 router.post( "/signup", [ check("name") .isLength({ min: 3 }) .withMessage("name should be atleast 2 chars"), check(&qu
router.post(
"/signup",
[
check("name")
.isLength({ min: 3 })
.withMessage("name should be atleast 2 chars"),
check("email").isEmail().withMessage("email is required"),
check("password")
.isLength({ min: 3 })
.withMessage("password should be atleast 2 chars"),
],
signup
);
const signup = (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty) {
res.status(422).json({
error: errors.array()[0].msg,
});
return;
}
const user = new User(req.body);
user.save((err, user) => {
if (err) return res.send("database injection failed error code 400");
return res.json(user);
});
};
如果我把输入作为
{
"name": "jo",
"email": "random@gmail.com",
"password": "kdfjldkmcs"
}
我还没有试过运行你的代码,但我至少可以看到一件看起来不合适的事情。 在代码中,检查
if(!errors.isEmpty){
,但在文档中的正式示例中,检查方式如下:if(!errors.isEmpty()){
errors.isEmpty
是一个返回true或false的函数,指示是否存在任何错误。由于它是一个函数,只需检查是否(!errors.isEmpty){
将始终为false。是的,如果我保留isEmpty(),但我不明白你的意思。你能解释清楚一点吗?顺便说一下,谢谢你的帮助