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.

¿Arrojar un error desde set() garantiza que el modelo no se guardará en la base de datos?

Estoy utilizando un validador de esquemas para validar y limpiar un esquema JSON antes de establecerlo. Realiza la validación y devuelve una versión limpia (si es válida) en un solo paso, por lo que sería redundante usarlo tanto en las propiedades validate como en set(). No hay necesidad de hacerlo dos veces.

¿Lanzar un error desde set() garantiza que el modelo no se guardará en la base de datos?

Aquí está la columna del modelo como ejemplo:

metadata: {
type: DataTypes.JSONB,
set(obj) {
const { error, value } = schema.validate(obj)
if (error) throw error
this.setDataValue('metadata', value)
},
},

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, lanzar un error desde la función set() evitará que el modelo sea guardado en la base de datos. La función set() se llama cada vez que se establece el atributo, y si se produce un error durante este proceso, el valor del atributo no se actualizará y el modelo no se guardará en la base de datos. En este caso, si la validación falla, se lanzará un error y el valor del atributo de metadatos no se actualizará, evitando así que el modelo se guarde con datos no válidos.

Comments are closed.