簡體   English   中英

node.js計時http請求

[英]node.js timing http requests

我正在嘗試確定響應請求所需的時間。

現在,我在httpServer 請求事件上創建了一個時間戳,問題是httpServerResponse不會發出end ,並且結束響應的end函數在不同的位置調用,並且我不想在所有這些位置添加此代碼。

有一個更好的方法嗎?

var server = http.createServer();

server.on('request', dispatch);

function dispatch(req, res){
   var start = Date.now();
   // No such event so never fired
   res.on('end', function(){
      console.log('requests.time', Date.now() - start);
   });
   generateResponse(req, res);
}

您可以覆蓋原始的res.end()函數,然后從其中調用原始函數:

var server = http.createServer();

server.on('request', dispatch);

function dispatch(req, res){
   var start = Date.now();

   var original=res.end;

   res.end=function(txt,encoding){
     console.log('requests.time', Date.now() - start);
     original.call(this,txt,encoding);
   }   

   generateResponse(req, res);
}

function generateResponse(req,res){
    setTimeout(function(){ // simulate some processing
        res.end('hi');
    },1000);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM