ExpressJs路由:找不到请求对象中'_startTime'属性的官方文档

时间:2017-03-20 07:37:36

标签: express routing

我需要检查请求发送到服务器的时间。为此我探索了'req'对象。它具有'_startTime'属性,它为我提供发送请求的客户机的系统时间。

我无法找到此属性的官方文档。

1 个答案:

答案 0 :(得分:0)

从我所看到的情况来看,_startTime不是Express在请求对象上设置的内容。

记录器模块morgan添加了它,但是通常名称以下划线开头的属性是“私有的”:它们仅供内部使用,不应该依赖。

但是,自己添加这样的属性并不是很困难。在Express中,最合乎逻辑的方法是使用中间件函数:

app.use((req, res, next) => {
  req._requestStarted = new Date();
  next();
});

因为您自己的应用程序代码设置了此属性,所以您始终可以依赖它(而不是_startTime,因为morgan供内部使用,可以删除或重命名未来)。

要挑剔:此值不反映发送请求的客户端的系统时间,而是服务器收到请求的服务器上的时间。在HTTP中,客户端通常不会发送自己的本地时间和请求。