我正在努力将响应时间数据在应用程序级别传递到Express应用程序中的每条路由。我已经搜索过Google和Googled,但一切都回来了,建议人们在API调用中加入new Date()
,这很重要,或者是Express response-time包(包括此处的许多结果)。虽然我确定它很棒,但是除了添加标题以了解如何在浏览器的开发工具中获得响应时间之外,我不知道它的作用是什么。
我想做的是在每条路线上从服务器访问视图中的所有响应时间数据。
Express已经提供了一些请求数据,但不是全部。我似乎无法访问所有回复。当我加载一个基本页面时,我的终端看起来像这样,尽管除了一个CSS文件外,页面上有6张图像。GET / 200 64.439 ms - 1663
GET /styles/index.css 200 36.582 ms - 2035
如果使用响应时间包,则似乎无法访问'X-Response-time'
标头。 req.headers
似乎只返回所有标头的子集,类似于上面提到的Express流量输出。
也许我只是很忙,但是即使响应时间包的文档也提到了configure it with Express的方法,但是我仍然不明白应该添加什么或如何在控制台之外访问它。
创建一个新的中间件,该中间件记录请求的响应时间,并将其提供给您自己的函数fn。 fn参数将作为fn(req,res,time)调用,其中time是毫秒数。
最佳答案
您不能只是这样做:
var responseTime = require('response-time')
app.use(responseTime(function(req, res, time) {
res.header('X-Response-Time', time);
}));
现在,此位置下方的每条路线上都会有一个响应时间标头。