【发布时间】:2015-11-19 00:53:15
【问题描述】:
我想查看我视图中的所有 URL,但我收到 #{data.id} Cannot read property 'id' of undefined 错误。
我想创建一个循环并查看我拥有的所有视频。
app.js
app.get('/you', function(req,res) {
youtube.where('id', '<', '5689').fetchAll().then(function(data) {
res.render('youtube', {
mi : data
});
});
});
这是给定 ID 的示例输出(我将 res.render 更改为 res.send 以测试我的查询,所以它可以工作)
[
{
"id": 442,
"channel_name": "channelNameredacted",
"video_url": "videoURlRedacted",
"video_title": "redacted",
"status": 1,
"date": "redacted"
}
]
youtube.jade
假设我想输出视频 ID。
html
head
body
each data in mi
#{data.id}
【问题讨论】:
-
我可以看到该视图发生此错误的唯一方法是
youtube提供的data在集合中包含undefined元素-[ { id: 442 }, undefined ]。如果在each下面加上条件if data,那么是否成功? -
旁注:在行首使用
#{...}会呈现一个动态命名的元素——<442></442>。我猜这可能不是你想要的。要将data.id呈现为文本,请在其前面添加一个元素或a pipe -div #{data.id}或| #{data.id}。 -
感谢您的建议,这很有帮助。