我是猫鼬的新手,正尝试使用枚举之类的预定义值来验证数组。 下面是我的模式
const movieSchema = new mongoose.Schema({
language:{
type:[String],
enum : ['Hindi','English','Gujarati','Marathi'],
required:true
}
});
下面是用于验证数组值的JOI模式
const schema = {
language:Joi.array().min(1).required()
};
如何进行验证,以便可以将“语言”字段另存为mongodb中的数组。
以下是要发布的有效json数组
{"language":["Hindi","English"] }
以下是无效的json,它不应验证架构。
{"language":["French","Spanish","English"] }
答案 0 :(得分:0)
在.items()
中使用.valid()
。
const schema = {
language: Joi.array()
.items(Joi.string().valid(['Hindi', 'English'])) // only allow(valid) 'Hindi' or 'English' items in array
.min(1).required()
};
答案 1 :(得分:0)
根据新版本,我认为我们应该在数组之前使用...传播。我在没有 ... 运算符的情况下遇到错误。
private readonly groupSchema = object({
name: string().required().alphanum().min(5).max(100),
permissions: Joi.array().items(Joi.string().valid(...['READ', 'WRITE', 'DELETE', 'SHARE', 'UPLOAD_FILES'])).min(1).unique().required()
});