0

FacebookAPIからJSONオブジェクトを取得するために「request」モジュールを使用しています。

exports.userInfo = function (userID, accessToken){
request.get({url: facebookAPI.ME + accessToken, json: true}, function(error, response, user){
    if (error) {
        console.log(error);
    } else {
        if (typeof(user) !== 'undefined'){
            return User;
        }

    }
});

};

ただし、このクローラーを外部から呼び出すと、有効なJSONオブジェクトが返されません。

var crawler = require('./helper/crawler');
console.log(crawler.userInfo(userID, accessToken)); 

リクエストが有効なJSONオブジェクトを返し、その有効なJSONオブジェクトをuserInfo関数に返すようにするにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

0

リクエストは非同期でコールバックをトリガーするため、return を使用することはできません。次のように、クローラー.userInfo にコールバックを渡す必要があります。

exports.userInfo = function (userID, accessToken, callback){
  request.get({
    url: facebookAPI.ME + accessToken,
    json: true
  }, callback);
};

そしたら外から

var crawler = require('./helper/crawler');
crawler.userInfo(userID, accessToken, function (error, response) {
  console.log(response);
}); 
于 2012-06-19T13:17:26.527 に答える