You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman发送请求时报Joi.validate is not a function错误如何解决?

问题原因

你触发的TypeError: Joi.validate is not a function报错,是因为你本地安装的Joi为v16及以上版本,该版本已经完全移除了旧版的全局Joi.validate()方法,改用了新的API调用规则。

修复方案

有两种修复方式可选:

  • 方式一:适配新版Joi API(更推荐,避免旧版本安全漏洞)
    修改你的验证逻辑代码如下:
//Validation
const Joi = require('joi');

//Register Validation
const registerValidation = data  => {
  // 改用Joi.object包裹校验规则生成schema实例
  const schema = Joi.object({
    name: Joi.string()
      .min(6)
      .required(),
    email: Joi.string()
      .min(6)
      .required()
      .email(),
    password: Joi.string()
      .min(6)
      .required()
  });
  // 调用schema实例上的validate方法校验数据
  return schema.validate(data);
};

//Login Validation
const loginValidation = data  => {
  const schema = Joi.object({
    email: Joi.string()
      .min(6)
      .required()
      .email(),
    password: Joi.string()
      .min(6)
      .required()
  });
  return schema.validate(data);
};

module.exports.registerValidation = registerValidation;
module.exports.loginValidation = loginValidation;
  • 方式二:降级Joi到旧版本
    如果你不想改动现有代码,可执行以下命令安装v15版本的Joi:
    npm install joi@15

修改完成后重新启动服务,再用Postman发送请求即可解决该报错。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:45:03