我正在使用Joi验证来验证API的有效负载数据。我制作了一个这样的架构:
'use strict';
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let tokenSchema = new Schema({
level : {type : Number},
tokenValues : [{
level : {type : Number},
amount : {type : Number}
}]
});
module.exports = mongoose.model('Tokens',tokenSchema,'tokens');
我写了Joi验证:
validate: {
payload: {
level: Joi.number().required(),
tokensValues: Joi.array().includes({
level : Joi.number().required(),
amount : Joi.number().required()
})
}
}
上面的代码给出了这样的错误:
TypeError: Joi.array(...).includes is not a function
如果这是错误的做法,请提出其他方法。
答案 0 :(得分:1)
我得到了解决方案:
validate: {
payload: {
level: Joi.number().required(),
tokensValues: Joi.array().items(Joi.object().keys({
level : Joi.number().required(),
amount : Joi.number().required()
}))
}
}
答案 1 :(得分:0)
Joi.types.Array().includes(Joi.types.Array().valid(["pass array strings here"]))
如果您使用express-joi