如何在express-validator的checkSchema下的isLength类型验证中为min,max提供不同的错误消息

时间:2019-12-21 07:51:34

标签: node.js express express-validator

我正在寻找一种解决方案,以在express-validator中提供不同的错误消息,其中选项可以包含多个值,例如 isLength ,该值可以采用最小值和最大值。

balanceByTrades = [100.000,00, -500,00, 1.500,00]

以我的示例为例,我想为最小和最大验证提供不同的错误消息。

  

for min-名字必须至少包含3个字符。

     

表示最多-名字不得超过50个字符。

但是我只能在此处提供单个errorMessage,这通常用于两种类型的验证。

有人可以告诉我在express-validator checkSchema验证中怎么可能吗?

1 个答案:

答案 0 :(得分:0)

您可以通过创建自定义验证程序来做到这一点。在此自定义验证器中,请检查具有不同条件的名字的长度,并针对每个无效条件拒绝并承诺您的错误消息。

var validation_rules = checkSchema({
    first_name: {
        notEmpty: {
            errorMessage: 'The First Name field is required'
        },
        isString: {
            errorMessage: 'The First Name must be a string.'
        },
        custom: value => {
            if (value.length < 3) {
             return Promise.reject("The First Name is too short")
            } else if (value.length > 4) {
             return Promise.reject("The First Name is too long")
            }
            return Promise.resolve()
        }
    }
});