使用 express-validator 验证输入在数字范围内,可能是浮点数

Ale*_*der 4 node.js express express-validator

我试图使用快速验证器验证输入是某个范围内的整数或浮点数。我试过了 ...

check(
      'rating',
      'Rating must be a number between 0 and 5'
).isNumeric({ min: 0, max: 5 }),
Run Code Online (Sandbox Code Playgroud)

...但最小值和最大值实际上不起作用。我尝试输入大于 5 的数字,但它们不会引发错误。

下面的作品(不允许数字超出最小值和最大值)......

check(
      'rating',
      'Rating must be a number between 0 and 5'
).isInt({ min: 0, max: 5 })
Run Code Online (Sandbox Code Playgroud)

...但仅适用于整数,不适用于小数,并且输入必须是小数或 0 到 5 之间的整数

有没有办法做到这一点?谢谢

Sha*_*ty 10

isNumber没有 min 和 max ,你可以使用isFloat

check('rating',
      'Rating must be a number between 0 and 5')
.isFloat({min:5,max:5}))
Run Code Online (Sandbox Code Playgroud)


Lor*_*ord 6

用于 int 检查

 body('status', 'status value must be between 0 to 2')
      .isInt({ min: 0, max: 2 }),

Run Code Online (Sandbox Code Playgroud)