0

次のコードは、Instagram ユーザーのフォロワーのリストを取得し、それらを 1 つの配列に結合して、Express ルート ハンドラーでそれらを返すことができるようにします。

これは、ページをめくる結果がもうないことを Instagram が通知するまで実行し続ける必要があります。この関数は、必須の「ユーザー ID」、必須の「access_token」、オプションの「cursor」、およびコールバックを受け入れます。

完全に結合されたデータが正しい JSON 形式で正常に返されますが、エクスプレス ハンドラーに戻すことはできません。

この情報をエクスプレス ハンドラーに戻すにはどうすればよいですか?

var out_data = [];
function getFollows(id,access_token,cursor,callback) {
  if(cursor && cursor != 1) {
    console.log('using cursor url with cursor: '+cursor);
    var url = 'https://api.instagram.com/v1/users/'+id+'/follows?&access_token='+access_token+'&client_id='+client_id+'&cursor='+cursor;
  } else {
    console.log('using standard url');
    var url = 'https://api.instagram.com/v1/users/'+id+'/follows?&access_token='+access_token+'&client_id='+client_id+';
  }
  request(url,function(err,res,body){
    var json = JSON.parse(body);
    _.each(json.data,function(item){
      out_data.push(item);
    });
    if(json.pagination.next_cursor) {
      getFollows(id,access_token,json.pagination.next_cursor,function(adata){
          out_data.push(adata);
      });
    }
    if(!json.pagination.next_cursor) {
      callback(out_data);
      //console.log(out_data);
    }
  });
};
4

1 に答える 1

0

の結果に依存するルート ハンドラーのセクションは、そのコールバックとしてgetFollows()渡される関数内にある必要があります。getFollows()基本的に、への呼び出しgetFollows()はハンドラーの最後のステートメントである必要があります。

于 2012-09-09T03:24:29.360 に答える