Spotify Web API结果“未定义”

时间:2019-11-12 21:12:30

标签: javascript node.js spotify

我正在尝试通过Spotify网络API获取播放列表/专辑/歌曲。我可以将这些内容输出到控制台,但是如果我只想获取名称,我会得到undefined

我正在尝试通过使用来检索信息  返回data.body.tracks.name

这不起作用,但我可以使用

searchSpotify(req, res) {
spotifyApi.searchTracks(req.body.search).then(
  function(data) {
    // var testPage = data.body.tracks.items;
    console.log('Search by user input', data.body.tracks.items);
    res.redirect("/search");
  },
  function(err) {
    console.error(err);
    }
  );
},

Returned Data

这将返回一些信息,如您所见,它还会返回一个名称,我如何才能将该名称作为查询中返回的唯一内容?

2 个答案:

答案 0 :(得分:1)

data.body.tracks.items返回一个数组,并且name嵌套在array内,然后嵌套在album对象内,因此您必须像这样更深入地学习

let name = data.body.tracks.items[0].album.name

如果您有多个Items,则可能必须遍历它才能获得每个名字

答案 1 :(得分:0)

问题在于items是对象数组,每个对象都有一个name字段。

尝试一下:

searchSpotify(req, res) {
spotifyApi.searchTracks(req.body.search).then(
  function(data) {
    // var testPage = data.body.tracks.items;
    console.log('Search by user input', data.body.tracks.items);
    const items = data.body.tracks.items
    const names = items.forEach(item => console.log(item.name))
    res.redirect("/search");
  },
  function(err) {
    console.error(err);
  }
);

您应该看到它在新行上打印每个项目的name