Set raw = true sur Sequelize Model.create

Je souhaite pouvoir recevoir l’object brut brut après avoir appelé Model.create sur Sequelize, l’object lui-même créé, sans métadonnées ni aucune autre chose. Tout comme l’option {raw: true} dans Model.find .

J’ai déjà vu cette réponse: La définition de toutes les requêtes sur raw = true , et non, Model.create({name: 'test'}, {raw: true}) ne fonctionne pas.

Merci

Merci beaucoup pour votre aide. J’ai trouvé une solution, même si ce n’est pas exactement ce que je recherche, mais cela fonctionne et rest bon.

L’entité sequelize a une méthode .get() pour renvoyer la version de l’object brut. Donc, ça ressemble à ça:

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

En venant de ce fil: Sequelize, convertit l’entité en object simple . Cherchez la réponse de CharlesA.

Je n’ai pas essayé avec les tableaux, mais vérifiez ses commentaires et la réponse à côté, si vous rencontrez des problèmes avec un tableau de résultats. Mais puisque .create() ne retourne qu’un object, cela fonctionne pour moi. Quoi qu’il en soit, si vous utilisez .findAll() , vous devez utiliser l’option {raw: true} place de cette solution car elle fonctionne dans cette méthode.

PS Si quelqu’un a encore une solution dans laquelle Sequelize ne renverra pas cet object resultEntity volumineux, mais uniquement l’object de données brut, comme l’option {raw: true} (car je pense que c’est encore plus léger?), Nous sums ouverts.

Merci beaucoup.

Vous pouvez également utiliser .toJSON () sur l’instance de modèle renvoyée par la requête. http://docs.sequelizejs.com/class/lib/model.js~Model.html#instance-method-toJSON