javascript - 如何使用 express-validator(版本 6.6.1)明智地验证字段条件
问题描述
我需要根据参数验证各个字段。所以在我的节点 js 路由中,如果幻灯片等于一个(在参数中)而不是仅验证姓名、电子邮件和电话号码。如果 slide 等于 2,则仅验证城市和州。如果幻灯片等于三,则验证用户地址是否存在。我想在一条路线中进行此验证。如果可能,请提供帮助。谢谢
解决方案
好的,我得到了解决方案,如果幻灯片值为零,则验证地址、状态、邮政编码等。如果幻灯片值为 1 等,则相同。
`router.post("/updateUser",
[
//first step
body("slide").not().isEmpty().withMessage('please provide slide number.'),
body("birthDate").if(body('slide').custom((value, {
req
}) => value == 0)).not().isEmpty().withMessage('BirthDate is required.'),
body("address").if(body('slide').custom((value, {
req
}) => value == 0)).not().isEmpty().withMessage('address is required.'),
body("state").if(body('slide').custom((value, {
req
}) => value == 0)).not().isEmpty().withMessage('state is required.'),
body("postal_code").if(body('slide').custom((value, {
req
}) => value == 0)).not().isEmpty().withMessage('postal code is required.'),
//second step
body("interests").if(body('slide').custom((value, {
req
}) => value == 1)).isArray({
min: 1
}).withMessage('at least one interests is required.'),
//third step
body("home").if(body('slide').custom((value, {
req
}) => value == 2)).not().isEmpty().withMessage('homeOwner is required.'),
//four step
body("driveVehicle").if(body('slide').custom((value, {
req
}) => value == 3)).not().isEmpty().withMessage('driveVehicle is required.'),
//fifth step
body("vehicleDetails.model").if(body('slide').custom((value, {
req
}) => value == 4)).not().isEmpty().withMessage('vehicle model is required.'),
body("vehicleDetails.mileage").if(body('slide').custom((value, {
req
}) => value == 4)).not().isEmpty().withMessage('vehicle mileage required.')
],async function (req, res, next) {`
推荐阅读
- macos - 更改 Tee-clc 中的默认凭据。苹果系统
- php - 尝试使用 PHP 8.0 安装 Xdebug - 安装的 Zend Engine API 版本 420200930 较新
- java - 查找用户输入数字的阶乘的代码错误
- powerbi - Power BI Desktop 如何使用新度量从行中减去一个值
- python - 最终成绩计划 = 不打印实际列表(显示每个人的字母成绩)
- python - 数据框到文本文件
- vba - Microsoft Access VBA - 当字段中的值不为空时锁定字段
- c - 如何使用 gtk-cairo 仅绘制屏幕上可见的内容
- fullcalendar - FullCalendar v5 根据来自服务器的动态数据动态设置 slotMaxTime 和 slotMinTime
- python - 将 Websockets 添加到部署在 Azure Web App Service 上的 Django 服务器