数据类型失败时出现Mongoose自定义错误消息

时间:2017-11-04 11:31:24

标签: express mongoose

我的mongodb架构中有phone字段,类型为Number

phone:{
       type:Number,
       required:[true,"Phone Number required"]
   }

如果电话号码包含数字以外的字符,则会抛出默认错误消息

Cast to Array failed for value \"887878jjk\" at path \"phone\

但我想自定义此错误消息,如"仅允许数字"我从mogoose doc找到的一个解决方案是为此编写一个自定义验证器

validate: {
          validator: function(v) {
            return /\d{3}-\d{3}-\d{4}/.test(v);
          },
          message: '{VALUE} is not a valid phone number!'
        },

但是没有使用自定义验证器还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

您必须在模型架构上执行此操作:

phone: {
type: String,
validate: {
  validator: function(v) {
    return /\d{3}-\d{3}-\d{4}/.test(v);
  },
  message: props => `${props.value} is not a valid phone number!`
},
required:[true,"Phone Number required"]

希望有帮助。