Koa系列-Metrics:koa-response-time
2019-03-27 字数统计:2.7k 字 阅读时长 ≈ 2 分钟

总体来说比较简单,主要用到了 process.hrtime 这个方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function responseTime(options) {
let hrtime = options && options.hrtime;
return function responseTime(ctx, next) {
let start = process.hrtime();
return next().then(() => {
let delta = process.hrtime(start);
// delata是纳秒级别的,所以要转微妙
delta = delta[0] * 1000 + delta[1] / 1000000;
if (!hrtime) {
// 转为毫秒
delta = Math.round(delta);
}
ctx.set('X-Response-Time', delta + 'ms');
});
};
}

参考 process.hrtime