console.log returns "Object" 对于某些字段,而不是正文数据 [spotify-web-api-node]

console.log returns "Object" for some fields, instead of body data [spotify-web-api-node]

我正在使用 spotify-web-api-node,当我进行 api 调用时,returned 数据在控制台中看起来像这样:

Album information {
  album_type: 'album',
  artists: [
    {
      external_urls: [Object],
      href: 'https://api.spotify.com/v1/artists/2hazSY4Ef3aB9ATXW7F5w3',   
      id: '2hazSY4Ef3aB9ATXW7F5w3',
      name: 'IZAL',
      type: 'artist',
      uri: 'spotify:artist:2hazSY4Ef3aB9ATXW7F5w3'
    }
  ],

  ...

  label: 'Hook Ediciones Musicales',
  name: 'Agujeros de Gusano',
  popularity: 0,
  release_date: '2014-01-25',
  release_date_precision: 'day',
  total_tracks: 13,
  tracks: {
offset=0&limit=50',
    items: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    limit: 50,
    next: null,
    offset: 0,
    previous: null,
    total: 13
  },
  type: 'album',
  uri: 'spotify:album:5U4W9E5WsYb2jUQWePT8Xm'
}

如您所见,external_urls: 和(稍后的)items: 等字段具有 [Object] returned,而不是实际数据。 该特定示例的 (node.js) 代码如下:

spotifyApi.getAlbum('5U4W9E5WsYb2jUQWePT8Xm')
  .then(function(data) {
    console.log('Album information',data.body);
  }, function(err) {
    console.error(err);
});

如果我将 console.log 中的 data.body 部分更改为 JSON.stringify(data.body) 它会好一些,因为它 return 数据,但作为一个字符串(显然) ,这不完全......可用:

Album information {"album_type":"album","artists":[{"external_urls":{"spotify":"https://open.spotify.com/artist/2hazSY4Ef3aB9ATXW7F5w3"},"href":"https://api.spotify.com/v1/artists/2hazSY4Ef3aB9ATXW7F5w3","id":"2hazSY4Ef3aB9ATXW7F5w3","name":"IZAL","type":"artist","uri":"spotify:artist:2hazSY4Ef3aB9ATXW7F5w3"}],"available_markets":[],"copyrights":[{"text":"2013 Hook Ediciones Musicales","type":"C"},{"text":"2013 Hook Ediciones Musicales","type":"P"}],

etc 等。也尝试了 JSON.parse(JSON.stringify(data.body)) 但我得到与 console.log.

相同的输出

如何在不丢失其格式的情况下获取字段的实际数据?

您可以使用 console.log(JSON.stringify(data.body, null, 2)).

在树中打印 JSON 而不会像在 [Object] 中看到的那样丢失其内容。

根据@snak 的评论,我将 console.log 行更改为:

console.log('Album information',util.inspect(data.body, false, null, true));

似乎 return 一切正常,没有 [Object]

(确保包含 const util = require('util'); 并使用 npm install util --save 安装它。)