Node Js Express验证器如果字段不为空,则检查字段是否仅为数字

med*_*ifi 4 node.js express

我使用express-validator来检查我的帖子字段,我的一个字段必须是小数或空.我使用了这个架构:

request.checkBody({ 
        'product_price': {
            optional: true,
            isDecimal: {
                errorMessage: 'The product price must be a decimal'
            }
        }
})
Run Code Online (Sandbox Code Playgroud)

这个Schema的问题是如果product_price为空则不验证我的帖子,即使是"optional:true".

rob*_*lep 9

您需要设置checkFalsy选项optional以允许定义但空的值:

request.checkBody({ 
  'product_price': {
    optional: {
      options: { checkFalsy: true }
    },
    isDecimal: {
      errorMessage: 'The product price must be a decimal'
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

编辑:自发布此答案后文档已被移动,现在可以在此处找到它.