arrays - 使用 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" });
}
解决方案
Joi 最近被更改为@hapi/joi
(字面意思是 2 周前),所以首先要确保你已经正确地切换了 NPM 包:npm uninstall joi
并且npm i -s @hapi/joi
. 确保require
也针对此更改更改您的陈述。
要在这个新包中定义您的架构,您将使用:
const schema = Joi.array().items(Joi.string());
推荐阅读
- python - 如何将 pandas 中的列条目与不同行中的另一个类似列条目进行匹配?
- java - 在Java中快速排序字符串数组?
- django - 将权限和组附加到从 BaseUserAdmin 创建的自定义用户模型
- python - (这可能吗?)Font-forge python 脚本修改字体以添加连字
- amazon-dynamodb - 需要有关 DynamoDB 架构的建议
- wpf - wpf 列表视图行禁用按钮启用
- flutter - Flutter 中的内阴影效果
- php - 如何使用 cURL / PHP 下载客户端视频?
- javascript - 使用颜色选择器值在图像 url 中打印颜色?
- nginx - Nginx - 在缓存过期时使用 proxy_cache_lock 逻辑以避免多上行请求