簡體   English   中英

node.js + mikeal / request-如何測量請求時間?

[英]node.js + mikeal/request - how to measure request time?

我正在使用mikeal / request庫訪問WebAPI。 我想記錄每個請求的控制台執行時間。

我有多個嵌套請求,所以我不想放入每個請求中: var start = Date.now(); ... var time = Date.now() - start; console.log('Finished in '+time+' ms'); var start = Date.now(); ... var time = Date.now() - start; console.log('Finished in '+time+' ms');

我希望可以做這樣的事情: requestWithDefaults = request.defaults({ ... startTime: null }); requestWithDefaults.on('request.prepare', function () { startTime = Date.now(); }); requestWithDefaults.on('request.finished', function () { var time = Date.now() - startTime; console.log('Finished in '+time+' ms'); }); requestWithDefaults = request.defaults({ ... startTime: null }); requestWithDefaults.on('request.prepare', function () { startTime = Date.now(); }); requestWithDefaults.on('request.finished', function () { var time = Date.now() - startTime; console.log('Finished in '+time+' ms'); });

但是我不知道該如何抓住那些時刻。 是否可以以簡單的方式實現?

如果您只想記錄某個過程的持續時間,則可以使用內置的Node.js console.time()console.timeEnd()函數。 您可以在此處查看Node控制台文檔

您可以編寫一個小的模塊來包裝請求功能,並添加console.time [End]語句,如下所示:

var request = require('request');

module.exports = {
    get: function(url, next) {
        // start console timer
        console.time(url);
        request.get(url, function() {
            // end console timer
            console.timeEnd(url);
            next.apply(this, arguments);
        });
    }
};

然后,您將直接包括此模塊,而不是請求模塊,這將默認為您提供該日志記錄。 注意:這僅是GET請求的示例,其余的可以構建。

輸出的格式為[label]: 475ms 非常好,很干凈,可以顯示完成某件事需要多少毫秒。 這不會為您提供來自moment.js的漂亮格式化可能性,但它確實很簡單。

暫無
暫無

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

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