我正在使用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);
但我不想使用任何第三方库。还有其他方法吗?提前谢谢。
答案 0 :(得分:39)
您可以为number
添加custom validator:
number: {
type : Number,
required : true,
unique : true,
validate : {
validator : Number.isInteger,
message : '{VALUE} is not an integer value'
}
}
答案 1 :(得分:0)
尝试使用 getter 和 setter:
number: {
type: Number,
required: true,
unique: true,
integer: true,
get: v => Math.round(v),
set: v => Math.round(v),
}