解决Joi.Validate is not a function问题、使用最新版本joi、验证表单信息无效

在最新的Joi版本中,validate方法已改变,导致博客项目中客户端表单验证失效。遇到此问题的开发者需要注意,如果验证涉及异步操作,应使用validateAsync。否则,可以选择回退到Joi的旧版本(如14.3.1)以保持原有用法。正确理解和使用官方文档能避免类似的一小时浪费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写博客项目时,需要验证客户端上传的表单信息,所以想到了joi。

但是页面发送请求后joi没有进行验证,发现是joi版本的问题,joi原先的validate用法更改了

不能再用如下的方法

在这里插入图片描述

在这里插入图片描述

方法的新版用法为

const schema = Joi.object({
   name: Joi.string().min(3).required().error(new Error('invalid name'))
});
const result = schema.validate(req.body);

但是注意,如果你表单验证这一块用了异步

需要使用validateAsync

 没错,我就因为这玩意浪费了一个多小时,所以看官网很重要

如果不想运用新方法,则可以回退joi版本

npm uninstall joi
npm install joi@14.3.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值