node.js - Express-Validator 条件验证
问题描述
我正在尝试验证用户是否选中了模板的任何复选框,以及用户是否选中了该复选框,然后他/她选中了哪个复选框。我能够验证单个复选框,但在验证多个复选框时遇到问题。
我尝试了 oneOf() 函数,但它给出了如下所示的错误。我对解决这个问题的其他方法持开放态度。
app.post('/menu-detail/:id', [
oneOf([
check('menu_price_large', 'required').equals('large'),
check('menu_price_regular', 'required').equals('regular'),
check('menu_price_xlarge', 'required').equals('xlarge'),
])
], (req, res)=>{
const errors = validationResult(req)
if(errors.isEmpty())
{
res.send('worked...')
}
else
{
res.send('error')
}
})
错误图片:
解决方案
您缺少从express-validator
.
要验证工作,您必须导入函数check
并oneOf
从express-validator
const { check, oneOf, validationResult } = require('express-validator');
app.post('/menu-detail/:id', oneOf([
check('menu_price_large', 'required').isIn(['large']),
check('menu_price_regular', 'required').isIn(['regular']),
check('menu_price_xlarge', 'required').isIn(['xlarge'])
]), (req, res)=>{
const errors = validationResult(req)
if(errors.isEmpty()){
res.send('worked...')
} else {
res.send('error')
}
})
推荐阅读
- bash - 当在 shell 脚本头中指定 #!/bin/bash 时,是否可以为应该使用的 bash 版本添加别名?
- flutter - Flutter:如何最小化 DropdownButton 的宽度
- sql - 基于 getdate 的动态日期更改
- wxpython - 使用 wx.Simplebook 给我退出代码 3221225477
- kdb - 使用正则表达式匹配删除 KDB 列表中的条目?
- firebase - 处理从 dart 中的云函数查询返回的时间戳
- ios - 是否所有 iOS 设备都具有可在设备上使用的 Apple Wallet 应用程序?
- c# - unity 更新运动矢量。向量值的物理意义
- java - 从插入到数据库的 Arraylist 返回大小 0
- asp.net-mvc - ASP.NET MVC 标识。无法为具有特殊字符的用户添加角色