验证中间件代码在我创建的代码中没有被触发,尽管所有的日志标记都被执行了。
const { check, validationResult } = require("express-validator");
module.exports = {
validateUsers(req, res, next) {
if (req.method === "POST") {
console.log(req.body.email);
check(["email", "Must consist only of letters."]).isEmail();
}
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.json(errors);
} else {
return next();
}
}
}
我试过用check
发送req
和req.body
,以及用两个选项发送body
。控制台日志显示提供了一个非电子邮件字符串,我试过其他字段和其他(失败的)值。
有人能给我指出一个有用的方向吗?我用过checkBody
的旧版本,但我被这些卡住了。我一直在忙app.js
,但它现在没有未注解的代码。
1条答案
按热度按时间hl0ma9xz1#
check
返回一个中间件,但您没有使用它,也没有向它传递所需的参数。我的建议是,这有点不符合人体工程学。它甚至可能不工作,因为从
check
返回的中间件可能调用next,然后您的代码就没有意义了。它的设计是为了不同的使用。它可能会更干净,如:然后像这样使用: