nodejs如何获取并统计请求时长?
问题:
1)浏览器请求url——2)路由处理url——3)根据url 拿到java数据 —— 4)渲染页面,这个过程中 现在需要统计(2-4)的时间以及(3)的时长
背景:
1.项目用的是nodejs的express框架 2.之前看了php的统计,php每一个请求就是一个进程,很好统计,但是对于node,不知道如何下手 3.尝试过用下面的方式实现,但是nodejs异步会导致开始的请求无法与请求结束的对应起来, (比如来了N个请求,然后处理了N-10个请求,这样就无法知道处理某个请求耗费的时间)
app.use(function (req, res, next) {
getStartTime();
res.on("finish", function(){
getEndTime();
});
next();
});
var promise = new Promise(function(resolve, reject) {
addStartTime();
request(options).then(function(json) {
if (json.responseCode == "0") {
resolve(json);
} else {
resolve(json.errorcode);
}
addEndTime();
}).catch(function(e) {
})
});