收到JSON后节点应用程序崩溃,但在发送之前不会。

所以我有一个node.js应用程序试图创build,其中的一部分是到达reddit的api,从一个url获取JSON,将其存储在一个URL中,并发送它收集的东西。 它完成了所有这些工作,但是在发出find的对象数组之后,应用程序崩溃了

TypeError: Cannot read property 'children' of undefined 

这对我来说没有任何意义,因为它已经find了这些值,并将它们用于输出。 任何想法可能是错的?

 var express = require("express"), restler = require("restler"); var app = express.createServer(); app.all('/:subreddit', function(req, res){ restler.get("http://www.reddit.com/r/"+ req.params.subreddit + ".json").on('complete', function(reddit){ var reddit_data = reddit.data.children; var titles = new Array(); var i = 0; while (i<5){ titles[i] = i+": " + reddit_data[i].data.title; i++ } res.send(titles); }); }); app.listen(14042); console.log("redSMS listening on 14042"); 

问题是,你把每个请求,并将其传递给Reddit。

如果浏览器转到http://localhost/bmw ,express会将其传递给reddit,并显示http://www.reddit.com/r/bmw.json的结果。 到现在为止还挺好。

然后,浏览器做它总是做的,去http://localhost/favicon.ico传递给Reddit作为http://www.reddit.com/r/favicon.ico.json ,给出了404,没有结果。 当你试图访问那个结果的children时,你会得到崩溃。

“完成”事件处理程序的callback传递2个参数,而不是一个。 第一个是“结果”,第二个是“回应”对象。