繁体   English   中英

Joi 获取验证模式:Joi.object() 错误

[英]Joi getting validationSchema: Joi.object() error

nestjs框架上安装joi后,我试图通过joi验证两个属性,例如:

import Joi from 'joi';
...
ConfigModule.forRoot({
    isGlobal: true,
    validationSchema: Joi.object(
        {
            PORT: Joi.number().required(),
            MONGODB_URI: Joi.string().required(),
        }
    )
}),
...

但我收到此错误:

Cannot read properties of undefined (reading 'object')

main.ts

async function bootstrap() {
    const app = await NestFactory.create(AppModule);
    // @ts-ignore
    app.useGlobalFilters(new ValidationPipe());
    const configService = app.get(ConfigService);
    const port = configService.get<string>('PORT');
    await app.listen(port);
}

完整错误:

D:\develop\api\src\app.module.ts:16
            validationSchema: Joi.object(
                                  ^
TypeError: Cannot read properties of undefined (reading 'object')
    at Object.<anonymous> (D:\develop\api\src\app.module.ts:16:35)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (D:\develop\api\src\main.ts:2:1)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
PS D:\develop\api>

在 tsconfig.json 中使用import * as Joi from 'joi'或设置tsconfig.json esModuleInterop: true Joi 默认不使用默认导出,因此需要使用命名/命名空间导入(第一个选项),或者您需要告诉 Typescript 以类似方式处理默认和命名导入(第二个选项)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM