![](/img/trans.png)
[英]How do I store a value from an API call with node.js Express and Mikeal's npm-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.