Turbo无法读取Undefined

时间:2017-10-09 23:05:09

标签: javascript html

我按照本教程(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数组,但它没有用。任何帮助表示赞赏。

1 个答案:

答案 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)

}