1

だから私は作成しようとしているnode.jsアプリケーションを持っています. これはすべて実行されますが、見つかったオブジェクトの配列を送信した後、アプリケーションはエラーでクラッシュします

    TypeError: Cannot read property 'children' of undefined

すでにそれらの値を見つけて出力に使用しているため、これは意味がありません。何が間違っている可能性がありますか?

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");
4

2 に答える 2

2

問題は、すべてのリクエストを受け取り、それをRedditに渡すことです。

ブラウザがに行くと、たとえばhttp://localhost/bmw、expressはそれをredditに渡し、の結果を表示しますhttp://www.reddit.com/r/bmw.json。ここまでは順調ですね。

次に、ブラウザは常に実行することを実行し、http://localhost/favicon.icoRedditに渡されhttp://www.reddit.com/r/favicon.ico.jsonて404が返され、結果は得られません。その結果にアクセスしようとするとchildren、クラッシュします。

于 2013-01-15T21:56:18.073 に答える
1

「complete」イベントハンドラーへのコールバックには、1つではなく2つのパラメーターが渡されます。1つ目は「結果」で、2つ目は「応答」オブジェクトです。

于 2013-01-15T21:36:27.017 に答える