Javascript Spotify web API结果“;“未定义”;

Javascript Spotify web API结果“;“未定义”;,javascript,node.js,spotify,Javascript,Node.js,Spotify,我正在尝试使用Spotify web API获取播放列表/专辑/歌曲。我可以将这些东西输出到控制台,但如果我只想得到名称,我会得到未定义的 我正在尝试使用 返回data.body.tracks.name 这不起作用,但我可以使用 searchSpotify(req, res) { spotifyApi.searchTracks(req.body.search).then( function(data) { // var testPage = data.body.tracks.item

我正在尝试使用Spotify web API获取播放列表/专辑/歌曲。我可以将这些东西输出到控制台,但如果我只想得到名称,我会得到
未定义的

我正在尝试使用 返回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);
    }
  );
},


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

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

let name = data.body.tracks.items[0].album.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);
  }
);

您应该会看到它在新行上打印每个项目的
名称。

数据是JSON格式的吗?如果是这样的话,试试console.log(json.stringify(data.body.tracks.items)),你的图像显示服务器给你一个401响应错误,这意味着你没有经过身份验证。您是否已请求API密钥来使用它?这不是一个公共API。嗨,是的,数据是JSON格式的,我尝试了你的建议,它在一些值上返回一个难以辨认的混乱,在其他值上再次返回“未定义”。