【发布时间】:2019-09-25 01:09:19
【问题描述】:
枚举验证在它是单个字符串时有效:
var songSchema = new Schema({
vocalRange: {
type: String,
enum: ["Soprano", "Mezzo-soprano", "Contralto", "Alto", "Tenor", "Baritone", "Bass"],
}
})
尝试发布除枚举中的内容之外的任何内容都会通过 mongoose 返回验证错误。
但是,以下内容:
var songSchema = new Schema({
vocalRange: {
type: [String], // this is what changed
enum: ["Soprano", "Mezzo-soprano", "Contralto", "Alto", "Tenor", "Baritone", "Bass"],
}
})
允许我为vocalRange 发布任何内容,无需任何形式的验证。这是怎么回事?为什么对字符串数组的验证不像对单个字符串那样有效?
【问题讨论】:
-
你试过
vocalRange: [{ type: String }]吗? -
天哪,我敢打赌就是这样。让我试试。
-
是的@tsuz 就是这样!谢谢,我想我刚刚度过了漫长的一天。如果您将其作为答案提交,我会标记它。
标签: node.js validation mongoose