【问题标题】:Node.js cannot read property 'item' of undefinedNode.js 无法读取未定义的属性“项目”
【发布时间】:2018-10-22 09:15:12
【问题描述】:

我正在做 The Net Ninja 的制作待办事项应用教程 (https://www.youtube.com/watch?v=IgAH0NqsJso&list=PL4cUxeGkcC9gcy9lrvMJ75z9maRw4byYp&index=33)。我可以删除待办事项应用程序上的预定义项目,但无法添加项目。每次我尝试添加一个项目时,我都会收到以下错误。似乎与未定义的 todos[i].item 有关。谢谢你的时间!下面是包含 To-do-App 的 .ejs 文件。

TypeError: C:\Users\dlma1\Desktop\Nodejs Practice\znode-js-playlist\views\todo.ejs:17
    15|       <ul>

    16|         <% for(let i=0;i<todos.length;i++){ %>

 >> 17|           <li><%= todos[i].item %></li>

    18|         <% } %>

    19|       </ul>

    20|     </div>


Cannot read property 'item' of undefined

**编辑: 所以有很多文件,我不想让人们不知所措,所以我将在下面发布我的 github。很抱歉之前没有包含这些文件!我不确定控制台错误日志是否足以诊断问题。

https://github.com/Taikon/To-Do-App.git

【问题讨论】:

  • todos[i] 未定义,因此没有 item 键。 todos到底是什么?
  • 对不起!我现在将它包含在一个 github 存储库中。它有一堆文件,所以当我编辑我的帖子时,如果它看起来很长,我就无法将它放入帖子中。感谢您的帮助!
  • data.push(res.body); res.body 是什么?如果您将 undefined 推送到 data,则可以解释错误。
  • Ohhh wow omg 你是完全正确的 =.= 我一整天都在试图弄清楚这一点,你只花了一分钟时间。非常感谢!它应该是 data.push(req.body);

标签: jquery node.js ajax express body-parser


【解决方案1】:

必须改变 data.push(res.body);到 data.push(req.body);

【讨论】:

    【解决方案2】:

    你能分享你的整个代码吗? 当您向todo 数组添加某些内容时,它似乎没有正确设置,即您的对象分配可能是错误的或输入是undefined

    【讨论】:

    • 对不起!我将文件上传到我的 github,因为它们很多。感谢您查看我的帖子! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2021-12-05
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多