web-dev-qa-db-fra.com

Obtenir uniquement des valeurs de données de Sequelize ORM

J'utilise l'ORM de séquençage pour récupérer les données d'une base de données PSQL. Cependant, lorsque je récupère quelque chose, tout un tas de données est fourni. Les seules données que je veux se trouvent dans 'dataValues' Bien sûr, je peux utiliser object.dataValues. Mais, y a-t-il d'autres bonnes solutions?

J'utilise Sequelize 4.10

8
Gijo Varghese

Le problème ne se produit que lorsque je le connecte en utilisant: 

console.log (Model.findAll ());

Si je l'enregistre dans une variable, je peux directement accéder aux objets à l'intérieur sans utiliser " dataValues ​​"

1
Gijo Varghese

Oui, vous pouvez

Model.findAll({
 raw: true,
 //Other parameters
});

renverrait uniquement les données et non l'instance de modèle

13
Shivam

Sequelize encapsule toutes les valeurs de retour dans un objet virtuel contenant des métadonnées. Si vous avez un objet et que vous voulez juste les valeurs de données non décorées, vous pouvez les décompresser comme ceci:

Model.findById(1).then(data => {
  console.log(data.get({ plain: true }));
});

De plus, si vous souhaitez simplement imprimer l'objet, vous pouvez utiliser la méthode .toJSON.

Model.findById(1).then(data => {
  console.log(data.toJSON);
});
7
C Deuter