NodeJs路由执行时间

时间:2017-12-15 07:56:49

标签: node.js express response

每当我对我的应用程序中的任何路径发出http请求时,我都会在我的控制台中找到路由方法,执行时间和其他数字,我不知道它的含义(很想知道)。 @sparklewhiskers

有谁知道如何使用这些数据?我想记录花费超过x时间的路线,这样我就可以改善这些路线。

我尝试从控制台找到。在快递框架中,我假设它来自那里,但没有运气

2 个答案:

答案 0 :(得分:2)

正如我从截图中看到的,您可能正在使用morgan中间件。

默认情况下,它会以dev格式记录所有请求,即

:method :url :status :response-time ms - :res[content-length]

所以根据你的截图 -

  1. 补丁是方法。
  2. / trades / 是网址路径。
  3. 200 是状态代码。
  4. 5.893 是响应时间。
  5. 2 是回复的内容长度。
  6. 我认为你问的是内容长度。它基本上是响应体的大小(以字节为单位)。

答案 1 :(得分:0)

查看source,Morgan通过向请求添加实例属性来跟踪请求的开始/结束时间。

请求时间看起来像是在响应开始写入标头时计算出来的,因此您需要遵循相同的模式....但 Morgan之后配置例如

import onHeaders from 'on-headers';
import logger from 'morgan';

app.use(logger()); // configure morgan
app.use((req, res, next) =>
  onHeaders(res, () => {
    console.log(logger['response-time'](req, res)); // this may work 
    // alternatively, use req._startAt / res._startAt to work it out (see source for implementation)
  });
  return next();
)

另一种选择当然是自己使用自定义中间件,或使用现成的东西,如response-time