首页 > 解决方案 > 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')
    }

})


错误图片:

图片

标签: node.jsexpress

解决方案


您缺少从express-validator.

要验证工作,您必须导入函数checkoneOfexpress-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')
        }
    })

推荐阅读