2016-11-13 55 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); 
    }); 

}); 

在哪裏,我怎麼到Response.End使用時打印出所有使用console.log()方法data數組的元素嗎?

非常感謝您的幫助!

+0

你只添加任何地方回調裏面,你試一下? – adeneo

+0

我試圖到Response.End'(函數(){ 爲(VAR I = 0; I

+1

使用'response.on('end',',也是因爲塊(你收集的)是字符串,它會使得'data + = collect'代替'push',這假設你將數據定義爲字符串'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]); 
     } 
    }); 

});