2016-11-13 49 views
2

時間を割いていただき、ありがとうございます!サーバの応答が終了したときにコードを実行する - Node.js

私はNode.jsが新しく、サーバーの応答が終わったときに、配列の要素をコンソールに出力する方法を理解しようとしています。

これはコードです:

var http = require('http'); 

http.get(process.argv[2], function (response) { 
    response = response.setEncoding('utf8'); 
    var data = []; 

    response.on('data', function (collect) { 
     data.push(collect); 
    }); 

    response.on('error', function(err) { 
     console.log(err); 
    }); 

}); 

どこで、どのように私はconsole.log()メソッドを使用してdata配列の要素のすべてをプリントアウトするResponse.Endのイベントを使用していますか?

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

+0

あなただけのコールバック内の任意の場所にそれを追加したい、あなたが何かをしようとしたのですか?私は '試み – adeneo

+0

Response.Endの(関数(){(VARに対する iは= 0; iはdata.lengthを<; iは++){ はconsole.log(データ[I]); } });' しかしresponse.endは関数ではありません。 –

+1

'response.on( 'end'、'、 'chunk(yours collect)は' push 'の代わりに 'data + = collect'を実行する文字列であるので、これも使用します。これは、データを文字列' var data = ''; ' – Molda

答えて

1

答えは私の顔を真っ直ぐ見つめていた! response.endメソッドを呼び出す必要はなく、代わりにresponse.onメソッドを呼び出してendイベントを渡す必要がありました。ここで

は私のために働いていたものです:

response.on('end',function(){ 
     for (var i = 0; i < data.length; i++) { 
      console.log(data[i]); 
     } 
    }); 

全コード:

var http = require('http'); 

http.get(process.argv[2], function (response) { 
    response = response.setEncoding('utf8'); 
    var data = []; 

    response.on('data', function (collect) { 
     data.push(collect); 
    }); 

    response.on('error', function(err) { 
     console.log(err); 
    }); 

    response.on('end',function(){ 
     for (var i = 0; i < data.length; i++) { 
      console.log(data[i]); 
     } 
    }); 

}); 
関連する問題