【发布时间】: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 way 或express 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