es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo asegurarme de que una matriz de objetos solo contenga una instancia de una clave específica con Joi?

Tengo algo como:

let moduleId

moduleRackOutputs.forEach((output) => {
  if (!moduleId) {
    moduleId = output.moduleId
  } else if (output.moduleId !== moduleId) {
    errors.add([
      'The drawing contains more than one module type. Multiple module types are not yet supported by the PVsyst RPA.'
    ])
  }
})

Quiero convertir esto en un esquema de Joi. ¿Cómo lo lograría?

Gracias

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Lamentablemente, Joi no es adecuado para convertir este fragmento de código en un esquema. Joi es una biblioteca de validación para validar datos entrantes contra un esquema definido por el usuario, mientras que este bloque de código simplemente realiza una lógica condicional en algunas variables.

    Si estás buscando utilizar Joi para validar el contenido de moduleRackOutputs, deberías definir la estructura esperada de los datos y las reglas de validación en un esquema Joi. Por ejemplo:

    const schema = Joi.object({
      moduleId: Joi.string().required(),
      outputValue: Joi.number().required()
    });
    

    Luego, podrías utilizar este esquema para validar cada elemento en el array de moduleRackOutputs:

    moduleRackOutputs.forEach((output) => {
      const { error, value } = schema.validate(output);
      if (error) {
        // manejar el error
      }
      // continuar procesando la salida
    });
    

Comments are closed.