我按照本教程(https://www.turbo360.co/tutorial/audio-streaming-app)创建了一个音频流网站,允许用户将音乐文件上传到他们的页面。但是,当用户首次登录时,没有上传文件,我收到此错误: app.js:67 Uncaught TypeError:无法读取属性' forEach'未定义的 任何人都知道为什么我无法让它发挥作用? 这是我的代码:
var renderTracks = function(){
if (currentUser == null)
return
var tracksList = ''
currentUser.tracks.forEach(function(track, i){
tracksList += '<tr><td style="width:130px"><a
target="_blank" href="' + track.url + '"><img
src="/dist/images/playbutton.png" alt="..." /></a></td>'
tracksList += '<td><h5><a target="_blank" href="' +
track.url + '">' + track.name + '</a></h5><p>Uploaded: '
+ track.timestamp + '</p></td>'
tracksList += '<td><h4 class="price">$40</h4></td></tr>'
})
$('#tracks-table').html(tracksList)
}
我尝试创建一个if语句,在用户登录之前创建一个track数组,但它没有用。任何帮助表示赞赏。
答案 0 :(得分:0)
我不完全了解你应用程序其余部分的上下文,但它听起来像currentUser存在,你进入下一个块,但track键不存在。当你提出这些类型的情况时,我会建议你,只需要放置一个console.log语句,看看你得到了什么;即:
var renderTracks = function(){ if(currentUser == null) 返回
var tracksList = ''
console.log(JSON.stringify(currentUser))
currentUser.tracks.forEach(function(track, i){
tracksList += '<tr><td style="width:130px"><a
target="_blank" href="' + track.url + '"><img
src="/dist/images/playbutton.png" alt="..." /></a></td>'
tracksList += '<td><h5><a target="_blank" href="' +
track.url + '">' + track.name + '</a></h5><p>Uploaded: '
+ track.timestamp + '</p></td>'
tracksList += '<td><h4 class="price">$40</h4></td></tr>'
})
$('#tracks-table').html(tracksList)
}