Saltar al contenido

Establezca raw = true en Sequelize Model.create

Solución:

Muchas gracias por su ayuda. Encontré una solución, aunque esto no es exactamente lo que estoy buscando, pero funciona y también es bueno.

La entidad secuelizar tiene un .get() método para devolver la versión del objeto simple. Entonces es algo como esto:

Model.create(modelObject)
.then((resultEntity) => {
    const dataObj = resultEntity.get({plain:true})
}

Viniendo de este hilo: Sequelizar, convertir entidad en objeto simple. Busque la respuesta de CharlesA.

No lo he probado con matrices, pero verifique sus comentarios y la respuesta al lado si tiene problemas con la matriz de resultados. Pero desde .create() solo devuelve un objeto, me funciona. De todos modos si estás usando .findAll(), Deberías usar {raw: true} opción en lugar de esta solución porque funciona en ese método.

PD: si alguien todavía tiene una solución en la que Sequelize en sí no devolverá ese gran objeto resultEntity, sino solo el objeto de datos sin formato, al igual que {raw: true} opción (¿porque creo que es aún más ligera?), estamos abiertos.

Muchísimas gracias.

También puede usar .toJSON () en la instancia del modelo que devuelve la consulta. http://docs.sequelizejs.com/class/lib/model.js~Model.html#instance-method-toJSON

Model.create(modelObject)
.then((resultEntity) => {
    const dataObj = resultEntity.get({plain:true})
}

Como se mencionó anteriormente o si desea seguir con la sintaxis async / await, elija:

const myResultVar = (await Model.create(modelObject)).get({plain:true})

Básicamente lo mismo, simplemente sin dejar atrás la sintaxis async / await 🙂

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *