Javascript 如何执行条件检查快速验证程序5.3.0?
更改API后,如何在express验证器中实现这种类型的逻辑 在if循环中调用req.checkBody或所需的验证函数实现了如上所示的技巧,但在API发生更改后,如何实现这一点 我尝试将paymentTYpe作为一个自定义验证器进行检查,实现检查并将消息抛出到自定义验证器中,但密钥发生了变化Javascript 如何执行条件检查快速验证程序5.3.0?,javascript,node.js,express,express-validator,Javascript,Node.js,Express,Express Validator,更改API后,如何在express验证器中实现这种类型的逻辑 在if循环中调用req.checkBody或所需的验证函数实现了如上所示的技巧,但在API发生更改后,如何实现这一点 我尝试将paymentTYpe作为一个自定义验证器进行检查,实现检查并将消息抛出到自定义验证器中,但密钥发生了变化 使用当前的APi进行此操作的正确方法是什么,因为这对于希望从3.0.0更新到最新的express validator APi的所有人都很有用。express validatorv5.x.x中尚未提供条件验
使用当前的APi进行此操作的正确方法是什么,因为这对于希望从3.0.0更新到最新的express validator APi的所有人都很有用。express validator
v5.x.x
中尚未提供条件验证支持,但它很快就会出现。以下是拉取请求,以防您对API给出反馈: 但是,请注意,传统API(使用
req.checkBody()
,req.getValidationResult()
等的API)尚未从express validator中删除
您可以在v5.x.x
中继续使用它,就像在v3.x.x
中一样。只是不建议这样做,因为它已被弃用,可能会在v6到期时(尚未!)删除
所有文档都与较新的API文档并排
免责声明:我是一名快速验证器维护者。我很高兴直接从回购维护者那里得到反馈,事实上我自己也看到了拉取请求,但我想确定一下,因为现在我的情况是,我必须更新验证器,目前我使用了一个自定义验证器和一些嵌套的if-else来记录创建早期的条件验证器,但我想知道是否有任何合适或优雅的方法来完成它还有多远release@codefreaK没有固定的截止日期。我每周有2个小时来做我的OSS项目。时间不多。
export function valUPM() {
return (req: Request, _res: Response, next: NextFunction) => {
req
.checkBody(
"paymentType",
`paymentType: ${messages.getFromSession(req, "mustNotBeEmpty")}`
)
.notEmpty();
if (req.body.paymentType === "USP") {
req
.checkBody(
"storeId",
`storeId: ${messages.getFromSession(req, "mustNotBeEmpty")}`
)
.notEmpty();
} else if (req.body.paymentType === "CC") {
if (req.body.register) {
req
.checkBody(
"register",
`register: ${messages.getFromSession(req, "mustBeBoolean")}`
)
.isBoolean();
} else {
req
.checkBody(
"register",
`register: ${messages.getFromSession(req, "mustNotBeEmpty")}`
)
.notEmpty();
}
}
req.getValidationResult().then(errs => {
if (errs.isEmpty()) {
return next();
}
const error = new BFFError(
400,
"BadRequest",
1,
errs.array().map(error => {
return { [error.param]: error.msg };
})
);
return next(Error(JSON.stringify(error)));
});
};
}