{key:""} 和 {key:" "}, json 文件的区别?

difference between {key:""} and {key:" "}, json file?

我正在尝试在我的 express Router 上实施验证,问题是当我传递 {title:""} 时,express-validator 没有抛出错误,但是当我传递 {title:" "} 时它起作用了.

exports.postValidatorCheck = [
  check("title", "The title must not we empty").isEmpty(),
  check("title", "The Length of the Title should be in greater then 10").isLength({
    min: 10,
    max: 1500
  }),
  function(req, res, next) {
    let errors = validationResult(req);
    console.log(errors);
    if (!errors.isEmpty()) {
      const firstError = errors.errors.map(err => err.msg)[0];
      return res.status(400).json({ error: firstError });
    }
    next();
  }
];

jSON 文件:

{
"title":"",
"body":"This is a new Post"
} 

没有错误

JSON 文件

{
"title":" ",
"body":"This is new post"
}

符合预期的错误。

首先,""是一个空字符串。 " " 不是;它包含一个 space 字符。如果您想将任何白色 space 算作空,您应该使用 regex solution.

至于你的实际问题,你在测试 isEmpty() 而你应该测试 not().isEmpty()

验证应使用负数:

check("title", "The title must not we empty").not().isEmpty()

这将确保 title 不为空,我认为这正是您的意图。