Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
Objeto anidado en esquema Joi

He definido el esquema de validación a través de Joi con un objeto anidado en el valor de AWS:

 const schema = Joi.object({ NODE_ENV: Joi.string() .valid('development', 'production', 'test') .default('development'), PORT: Joi.number().default(3000), AWS: Joi.object({ accessKeyId: Joi.string().required(), secretAccessKey: Joi.string().required(), region: Joi.string().required(), bucket: Joi.string().required(), }).required(), });

Luego puse mi esquema en el módulo de configuración.

 @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, validationSchema: schema, validationOptions: { abortEarly: false, cache: false, }, }), FilesModule, UsersModule, PostsModule, SharedModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule {}

He agregado dentro del archivo .env el siguiente valor para la variable AWS:

 AWS={"region": "string", "accessKeyId":"string", "secretAccessKey": "string", "bucket": "string"}

pero recibí el siguiente mensaje de error después de iniciar nest:

 > project-8v@0.0.1 start /Volumes/MacDATA/NestJs/project-8v > nest start /Volumes/MacDATA/Lern/NestJs/project-8v/node_modules/@nestjs/config/dist/config.module.js:66 throw new Error(`Config validation error: ${error.message}`); ^ Error: Config validation error: "AWS" must be of type object

typeof process.env.AWS devuelve una cadena y Joi no entiende que debe analizarla, tal vez necesito agregar algo en las opciones de validación o me pierdo algo. ¿Cómo puedo resolverlo?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

A partir de Joi v16.0.0 , la coerción de cadenas de objetos y matrices ya no está disponible como una opción integrada.

Puede replicar esta funcionalidad extendiendo Joi. Por ejemplo:

 const JoiCustom = Joi.extend({ type: 'object', base: Joi.object(), coerce: { from: 'string', method(value) { if (value[0] !== '{' && !/^\s*{/.test(value)) { return { value }; } try { return { value: JSON.parse(value) }; } catch (error) { return { errors: [error] }; } } } });

Luego use JoiCustom en su esquema:

 const schema = Joi.object({ ... AWS: JoiCustom.object({ ... }).required() });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda