gpt4 book ai didi

node.js - 如何使用express-validator验证复选框值?

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:15 25 4
gpt4 key购买 nike

在我的网络前端表单中,我使用复选框为每个复选框条目选择公司列表,我已将公司名称指定为“值”属性。在nodejs中,我使用express-validator来检查表单。我不清楚如何验证和清理这些复选框项目的用户输入。

我看到快速验证器的所有示例都使用表单参数名称来检查特定参数(例如) check('userName') 作为中间件。但对于复选框,只有当用户选择该参数时才会出现特定参数。如果我有 10 个选项,而用户只选择其中 4 个,那么 req.body 将只有这些参数。我还希望它们都通过相同的验证检查和清理。请建议如何做。

我使用的 NodeJS 版本:10.8快速验证器:5.3.0我的复选框值为company_a1、company_a2、...company_a10。我尝试编写自定义验证器并检查每个主体参数的字母数字值,但即使该值包含字母数字字符串,检查也不会引发错误

async function validateReportParams(body, { req, loc, rpath }) {

for (const par of Object.keys(req.body)) {
try {
check(req.body[par].isAlphanumberic());
} catch (err) {
return Promise.reject(err);
}
}
}
exports.genReport = [
validateReq,
param().custom(validateReportParams),
async (req, res, next) => { ... }
];

最佳答案

尝试对每个复选框使用相同的名称,而不是应用 isIn([]) 进行验证,如下所示:https://express-validator.github.io/docs/check-api.html

check(req.body.checkbox.isIn(['company_a1','company_a2',...,'company_a10']));

关于node.js - 如何使用express-validator验证复选框值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54166697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com