2011-08-01 4 views
2

Je fais une demande à l'API facebook pour obtenir une liste d'amis. Lorsque je fais la demande via node.js, ma requête est toujours tronquée. Est-ce que quelqu'un comprend pourquoi la réponse est tronquée?Pourquoi mon node.js obtient-il une réponse tronquée

Voici le code de ma fonction:

var loadFriends; 
loadFriends = function(access_token, callback) { 
    var https, options, start; 
    https = require('https'); 
    start = new Date(); 
    options = { 
    host: 'graph.facebook.com', 
    port: 443, 
    path: '/me/friends?access_token=' + access_token 
    }; 
    return https.get(options, function(res) { 
    console.log("Request took:", new Date() - start, "ms"); 
    res.setEncoding("utf8"); 
    return res.on("data", function(responseData) { 
     var data; 
     console.log(responseData); 
     data = JSON.parse(responseData); 
     return callback(data); 
    }); 
    }); 
}; 
+0

S'il vous plaît appeler ceci avec la langue ou le cadre que vous utilisez, car ce n'est pas JavaScript/Node.js. –

+0

Je l'ai converti de coffeescript en javascript et l'ai tagué de manière appropriée –

Répondre

4

L'événement res.on('data') se produira à plusieurs reprises que des morceaux de données arrivent; vous devez concaténer cela ensemble pour obtenir toute la réponse.

http://nodejs.org/docs/v0.4.0/api/http.html#event_data_

+2

Pour finir la pensée: vous savez que les données sont terminées lorsque l'événement 'end' est déclenché. C'est à ce moment que vous devez appeler les rappels nécessitant les données complètes. –

Questions connexes