我需要使用joi验证数组以检查其元素是否为字符串。它总是发送“ Inavlid tag”错误。
// returned array from req.body
let tags = ["Vue", "React", "Angular"]
// joi shema
const schema = {
tags: Joi.array().items(Joi.string()),
};
const { error, value } = Joi.validate(tags, schema);
if (error) {
return res.status(400).send({ tagError: "Invalid tag" });
}
答案 0 :(得分:0)
该问题是由于您如何定义架构而导致的,正确的验证方法是:
// returned array from req.body
let tags = ["Vue", "React", "Angular"]
const schema = Joi.array().items(Joi.string());
const { error, value } = Joi.validate(tags, schema);
答案 1 :(得分:0)
Joi最近更改为val myconstraint : Constraint[MyForm] = Constraint("myconstraint")({ ...
...
val form = Form( ...
(字面意思是2周前),因此请首先确保已正确退出NPM软件包:@hapi/joi
和npm uninstall joi
。同样,请确保更改您的npm i -s @hapi/joi
语句。
要在此新程序包中定义架构,请使用:
require