如何在express.js 中使用条件验证 - “大于”和“小于”与express-validators?

Bik*_*ku7 1 conditional-statements express express-validator

我用作handlebar page模板和nodejs后端。

condtional validation if (a < b)我想在网页上使用然后显示错误消息。但我无法这样做express-validators

这是我下面的代码,我正在尝试它不起作用。我'lt'确实使用了 2 个字母关键字=,但它不起作用。

  router.post('/addtasks', function(req, res, next) {
  req.checkBody('topic', 'Empty Topic').notEmpty();
  req.checkBody('website', 'Empty Website').notEmpty();

 req.checkBody('words', 'Empty Words').notEmpty().isLength({ min: 3 }).isInt({ lt: 2000});
});
Run Code Online (Sandbox Code Playgroud)

他们first 2正在网页上抛出错误消息。但它3rd one不起作用。我还可以实现这一目标any other wayexpress package?谢谢!

编辑我正在尝试的内容:

  router.post('/addtasks', function(req, res, next) {
      req.checkBody('topic', 'Empty Topic').notEmpty();
      req.checkBody('website', 'Empty Website').notEmpty();
var totalCount = 2000;
totalCount = totalCount - 500;
    
  req.checkBody('words', 'Empty Words or Min. Words = 500 Required or either Word limit exceeded').notEmpty().isInt({ gt:500, lt: totalCount});

    });
Run Code Online (Sandbox Code Playgroud)

在这里我想lt:动态地放置该值,该值每次都在变化而不是固定的。但这里并没有采取这一点。我需要一个合适的解决方案来解决这个问题。

Pim*_*Web 7

Express-validator使用validator.js图书馆。

遵循其文档

您应该使用minmax属性

req.checkBody('words', 'Empty Words').notEmpty().isInt({ min:100, max: 2000});
Run Code Online (Sandbox Code Playgroud)

提炼 :

检查字符串是否为整数。

options 是一个对象,它可以包含键 min 和/或 max 以检查整数是否在边界内(例如 { min: 10, max: 99 })。options 还可以包含键allow_leading_zeroes,当设置为 false 时将不允许带有前导零的整数值(例如 {allow_leading_zeroes: false })。最后,选项可以包含键 gt 和/或 lt,它们将强制整数分别大于或小于所提供的值(例如,对于 1 到 4 之间的数字,使用 {gt: 1, lt: 4})。