【问题标题】:ExpressJs Routing: Could not find official documentation for '_startTime' property in request objectExpressJs 路由:在请求对象中找不到“_startTime”属性的官方文档
【发布时间】:2017-03-20 07:37:35
【问题描述】:

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

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

【问题讨论】:

    标签: express routing


    【解决方案1】:

    据我所知,_startTime 不是 Express 在请求对象上设置的。

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

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

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

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

    吹毛求疵:这个值不反映发送请求的客户端的系统时间,它是服务器接收请求的服务器时间。在 HTTP 中,客户端通常不会将自己的本地时间与请求一起发送。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-11
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多