Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Express验证器没有产生错误,即使它应该产生错误_Node.js_Express - Fatal编程技术网

Node.js Express验证器没有产生错误,即使它应该产生错误

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

我使用的是express validator软件包,我尝试在将数据插入数据库之前验证数据,但由于某些原因,数据未被验证并直接插入数据库

这是我的代码文件

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(),但我不明白你的意思。你能解释清楚一点吗?顺便说一下,谢谢你的帮助