1257 votes

Comment puis-je obtenir l'objet complet dans la console.log() de Node.js, plutôt que '[Object]' ?

J'ai cet objet :

const myObject = {
   "a":"a",
   "b":{
      "c":"c",
      "d":{
         "e":"e",
         "f":{
            "g":"g",
            "h":{
               "i":"i"
            }
         }
      }
   }
};

Mais quand j'essaie de le montrer en utilisant console.log(myObject) je reçois ce message :

{ a: 'a', b: { c: 'c', d: { e: 'e', f: [Object] } } }

Comment puis-je obtenir l'objet complet, y compris le contenu de la propriété f ?

2voto

Sunil Jamkatel Points 95

Option la plus facile :

    console.log('%O', myObject);

2voto

Lukas Points 656

Si vous cherchez un moyen d'afficher les éléments cachés dans votre tableau, vous devez passer le code suivant maxArrayLength: Infinity

console.log(util.inspect(value, { maxArrayLength: Infinity }));

2voto

lifeisfoo Points 11

Utiliser un enregistreur

N'essayez pas de réinventer la roue

util.inspect() , JSON.stringify() y console.dir() sont des outils utiles pour enregistrer un objet tout en jouant dans la console du navigateur.

Si vous êtes sérieux sur le développement de Node.js, vous devez absolument utiliser un logger. En l'utilisant, vous pouvez ajouter tous les logs que vous souhaitez pour débogage et surveillance votre demande. Ensuite, il suffit de changer le niveau de journalisation de votre logger pour ne garder que les logs de production visible .

De plus, ils ont déjà résolu tous les problèmes ennuyeux liés à l'exploitation forestière, comme par exemple : objets circulaires , mise en forme , log niveaux , multiples sorties y performance .

Utiliser un enregistreur moderne

pino est un rapide et un enregistreur moderne pour Node.js qui possède des valeurs par défaut saines pour gérer les objets/références circulaires comme depthLimit y edgeLimit . Il prend en charge enregistreurs d'enfants , transports et un joli imprimé sortie.

De plus, il dispose de 8 niveaux de journalisation par défaut que vous pouvez personnaliser à l'aide de la fonction customLevels option :

  • fatal
  • error
  • warn
  • info
  • debug
  • trace
  • silent

Installez-le

npm install pino

Utilisez-le

const logger = require('pino')()

logger.info('hello world')

Configurez-le

const logger = pino({
  depthLimit: 10,
  edgeLimit: 200,
  customLevels: {
    foo: 35
  }
});

logger.foo('hi')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X