升级Node.js与Hapi应用时遇Joi.strict is not a function错误求助
问题解决:TypeError: Joi.strict is not a function
错误原因
升级Node.js(v18.17.1)和Hapi后出现该错误,核心原因是Joi版本更新后API变更:Joi v17及以上版本移除了全局的Joi.strict()方法,原有的调用方式不再兼容。
解决方案
- 修改Joi调用代码:
把原来的全局Joi.strict()调用,改为在Schema对象上链式调用.strict():
或者在验证时通过传入选项开启严格模式:// 旧写法(报错) const schema = Joi.strict().object({ // 字段定义 }); // 新写法 const schema = Joi.object({ // 字段定义 }).strict();const result = schema.validate(data, { strict: true }); - 校验依赖版本兼容性:
确保@hapi/hapi与@hapi/joi版本匹配,比如@hapi/hapi v20+需搭配@hapi/joi v17+,避免版本不兼容导致的API不匹配问题。
内容的提问来源于stack exchange,提问作者PrakashKumar
相关产品推荐
相关产品推荐

