在joi框架上安装nestjs之后,我试图通过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>发布于 2022-07-28 13:41:57
要么使用import * as Joi from 'joi',要么在tsconfig.json中设置esModuleInterop: true。默认情况下,Joi不使用默认导出,因此需要使用命名/命名空间导入(第一个选项),或者需要告诉类型记录以类似方式对待默认导入和命名导入(第二个选项)
https://stackoverflow.com/questions/73153403
复制相似问题