将所需的猫鼬模式类型设置为null

时间:2018-08-13 03:33:59

标签: mongoose schema

我有一个注册流程,并且第一页只要求您提供电子邮件和密码。下一页询问国家,州(可选)和城市。

在猫鼬模型中,我将所有字段都设置为<button id="cmd" onclick="savePDF()">generate PDF</button> ,但是直到第二页才为国家,州和城市分配值,因此需要将其分配给required或其他一些空值或虚假值。

null

当猫鼬的SchemaType必须为必填字段时,如何为它分配一个const User = mongoose.Schema({ email: { type: String, required: true }, password: { type: String }, country: { type: String, required: true, }, state: { type: String, default: null, required: false, }, city: { type: String, required: true, }, }); 值?

1 个答案:

答案 0 :(得分:1)

As per the docs required可以是布尔值,也可以是应返回布尔值的函数。长话短说,您可以创建一个函数来检查值是字符串还是null并返回true。

示例:

const User = mongoose.Schema({
  email: {
    type: String,
    required: true
  },
  country: {
    type: String,
    required: function() {
      return typeof this.country === 'undefined' || (this.country != null && typeof this.country != 'string')
    }
  }
});