首页 > 解决方案 > joi-browser 不允许空字符串

问题描述

似乎 joi 浏览器不允许有空字符串。这是我的架构:

schema = {
    _id: Joi.string(),
    heading: Joi.string()
      .min(5)
      .max(50)
      .label("Heading")
      .required(),
    subHeading: Joi.string().max(50)
  };

如果我将 subHeading 字段留空(因为它不是必填字段),我会收到错误消息:““subHeading”不允许为空”

无论如何允许在验证中使用空字符串?

我使用 Node.js 作为后端,我的模型如下所示:

const headingSchema = new mongoose.Schema({
  heading: {
    type: String,
    minlength: 5,
    maxlength: 50,
    required: true
  },
  subHeading: {
    type: String,
    minlength: 5,
    maxlength: 50
  }
});

因此,当我使用 Postman 并发送 put 请求时,我可以将 subHeading 字段留空。所以这是 joi-browser 的问题。

标签: reactjsjoi

解决方案


你试过了吗?

schema = {
    _id: Joi.string(),
    heading: Joi.string()
      .min(5)
      .max(50)
      .label("Heading")
      .required(),
    subHeading: Joi.string().max(50).allow('')
};

推荐阅读