2016-12-14 7 views
0

私は外部apiへの単純なhttp.get要求を持っています。 別の関数からID変数と名前変数にアクセスするにはどうすればよいですか?ありがとう!http.getメソッドnodejsからデータにアクセスする方法

app.use(function *(next){ 
 

 
\t var name = ''; 
 
\t var id = ''; 
 

 
\t var options = { 
 
\t \t host: 'www.website.com', 
 
\t \t path: '/json/somedata', 
 
\t \t metohd: 'GET' 
 
\t }; 
 
\t http.get(options, function(res) { 
 

 
\t \t var body = ''; 
 

 
\t \t res.on('data', function(chunk) { 
 
\t \t \t body+=chunk; 
 
\t \t \t console.log(body); 
 
\t \t }) 
 
\t \t res.on('end', function() { 
 
\t \t \t var parsed = JSON.parse(body); 
 
      id = parsed.id; 
 
      name = parsed.name; 
 
\t \t }) 
 
\t }) 
 
});

+0

HTTPライブラリがあり、かなり低いレベルを:あなたは、私は以下の簡単な例を与えてくれた

すべての処理を終えた知ることができませんそれ以外の場合は特急終了した後の次の呼び出しを忘れないでください。 npmでリクエストを見ることをお勧めします。期待通りに動作します。 – Paul

答えて

1

私はあなたがそこに持っている構文で、NPMモジュールExpressを使用していると思います。

あなたの回答は、IDと名前を使用する場所によって異なります。の後にルートまたはミドルウェアでそれを使用しようとしている場合は、その問題を解決する一般的な方法は、プロパティ(この場合は名前とID)を要求に付加することです。

app.use(function (req, res, next){ 

    var options = { 
     host: 'www.website.com', 
     path: '/json/somedata', 
     method: 'GET' 
    }; 
    http.get(options, function(getResponse) { 

    var body = ''; 

    getResponse.on('data', function(chunk) { 
     body+=chunk; 
     console.log(body); 
    }) 
    getResponse.on('end', function() { 
     var parsed = JSON.parse(body); 
     req.id = parsed.id; 
     req.name = parsed.name; 
     next(); 

    }) 
    }) 
}); 
関連する問題