Javascript Spotify web API结果“;“未定义”;
我正在尝试使用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
未定义的
我正在尝试使用
返回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格式的,我尝试了你的建议,它在一些值上返回一个难以辨认的混乱,在其他值上再次返回“未定义”。