{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
不为空,我认为这正是您的意图。
我正在尝试在我的 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
不为空,我认为这正是您的意图。