用joi验证字符串数组,必须是字符串

时间:2019-05-30 13:49:03

标签: arrays node.js joi

我需要使用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" });
}

2 个答案:

答案 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/joinpm uninstall joi。同样,请确保更改您的npm i -s @hapi/joi语句。

要在此新程序包中定义架构,请使用:

require