【问题标题】:Validate integer values with mongoose使用 mongoose 验证整数值
【发布时间】:2016-10-09 05:47:28
【问题描述】:

我正在使用mongoose,我需要定义如下架构:

const QuestionSchema = new Schema({
    text: {
        type: String,
        required: true
    },
    number: {
        type: Number,
        required: true,
        unique: true
    }
});

我需要验证number 字段是一个整数值。我已经看到了几个插件,例如:mongoose-integer:

const validateInteger = require('mongoose-integer');
const QuestionSchema = new Schema({
    text: {
        type: String,
        required: true
    },
    number: {
        type: Number,
        required: true,
        unique: true,
        integer: true
    }
});
QuestionSchema.plugin(validateInteger);

但我不想使用任何第三方库。还有其他方法吗?提前致谢。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您可以为number 添加custom validator

    number: {
      type     : Number,
      required : true,
      unique   : true,
      validate : {
        validator : Number.isInteger,
        message   : '{VALUE} is not an integer value'
      }
    }
    

    【讨论】:

      【解决方案2】:

      尝试为此使用 getter 和 setter:

      number: {
          type: Number,
          required: true,
          unique: true,
          integer: true,
          get: v => Math.round(v),
          set: v => Math.round(v),
      }
      

      【讨论】:

        猜你喜欢
        • 2020-11-17
        • 1970-01-01
        • 2020-12-28
        • 1970-01-01
        • 1970-01-01
        • 2019-05-10
        • 2023-01-13
        • 2019-10-03
        • 2018-10-09
        相关资源
        最近更新 更多