【问题标题】:How to use conditional validation - 'greater than' and 'less than' with express-validators in express.js?如何使用条件验证 - “大于”和“小于”与 express.js 中的 express-validators?
【发布时间】:2020-10-28 17:01:47
【问题描述】:

我使用handlebar page 作为模板,nodejs 作为后端。

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

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

  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});
});

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});

    });

在这里,我想动态放置lt: 值,它每次都在不断变化,而不是固定的。但这里它不接受。我需要一个合适的解决方案。

【问题讨论】:

  • 只有当 'words' 为整数时,是否要检查小于 2000 的条件?
  • words 数据类型是整数。我想应用验证,因为它不应大于 2000 且小于 500。
  • 在这种情况下,BENARD Patrick 的回答应该可以解决您的问题
  • 是的,它正在解决,但这里的问题是我将最小值和最大值作为变量意味着它不断变化。 ex - var a = 2000;所以我想把值设为: .isInt({ min:100, max: a});但是这样它就没有价值了。
  • 我不认为有一个动态变量会导致问题。让你分享更多的代码 sn-p 它可能有助于解决问题。

标签: express conditional-statements express-validator


【解决方案1】:

Express-validator 使用 validator.js 库。

关注其documentation

您应该使用minmax 属性

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

提取:

检查字符串是否为整数。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    相关资源
    最近更新 更多