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

NestJS中使用Joi配置validationSchema时出现读取object未定义错误

解决Joi在NestJS中出现"Cannot read properties of undefined (reading 'object')"错误

问题分析

该错误是因为Joi导入方式不正确,导致Joi变量为undefined,无法调用Joi.object()方法。

解决步骤

1. 修正Joi导入语句

将默认导入改为命名空间导入:

// 替换原有的 import Joi from 'joi';
import * as Joi from 'joi';

2. 确认Joi依赖正常

若修改导入后仍有问题,重新安装Joi确保依赖完整:

npm install joi
# 或使用yarn
yarn add joi

修改后的完整配置示例

import * as Joi from 'joi';
import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
      validationSchema: Joi.object({
        PORT: Joi.number().required(),
        MONGODB_URI: Joi.string().required(),
      }),
    }),
  ],
})
export class AppModule {}

原因说明

Joi v17及以上版本采用CommonJS规范导出模块,而非ES模块的默认导出机制。直接使用import Joi from 'joi'会导致导入的Joi为undefined,必须通过import * as Joi from 'joi'完整导入Joi的所有导出内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:06:24