【问题标题】:How to put timestamp in express js?如何在express js中放置时间戳?
【发布时间】:2017-04-28 12:18:09
【问题描述】:

我尝试为我的所有请求添加时间戳。为此我使用了 morgan,并包含如下内容,

if (process.env.NODE_ENV === 'development') {
    // Enable logger (morgan)
    app.use(morgan('common'));
  }

这导致我的控制台为,

::ssss:197.7.8.1 - - [Fri, 28 Apr 2017 00:28:29 GMT] "GET /assets/jqwidgets/styles/images/icon-right.png HTTP/1.1" 200 143
::ssss:197.7.8.1 - - [Fri, 28 Apr 2017 00:28:29 GMT] "GET /assets/jqwidgets/styles/images/icon-left.png HTTP/1.1" 200 139
::ssss:197.7.8.1- - [Fri, 28 Apr 2017 00:28:31 GMT] "GET /admin-get-users

从上面的结果中,我得到了时间戳以及我不想要的互联网地址(::ssss:197.7.8.10。任何人都可以建议我帮忙。如果建议的任何新模块也是一个很好的解决方案给我。谢谢。

【问题讨论】:

标签: javascript node.js express mean-stack node-modules


【解决方案1】:

您是在询问如何使用 Morgan 而不是 expressjs 获取时间戳。您可能应该适当地重新标记问题。

无论如何,morgan offers some predefined tokens 您在构造对象时使用它来设置它输出的字符串。如果您对时间戳感兴趣,请使用 app.use(morgan(':date[format]')); 构造格式为 clf 之一的对象(打印如 "27/Apr/2017:12:00:00 +0000" 、iso(打印如“2017-04-27T12:00:00.000Z”)或web(打印如“Thu, 27 Apr 2017 12:00:00 GMT”)。其他令牌也存在,如 @987654327 @ 用于响应的 HTTP 状态代码或:url 用于请求的 url。如果你发现你有兴趣记录这些。在你的评论之后,你似乎是,所以尝试app.use(morgan(':date[clf] ":method :url"'));app.use(morgan(':date[clf] ":url"'));

if (process.env.NODE_ENV === 'development') {
    // Enable logger (morgan)
    app.use(morgan(':date[clf] ":method :url"')); // prints date in same format as original Q
}

【讨论】:

  • 嗨彼得,有了这个变化,我得到了 2017 年 4 月 28 日星期五 04:15:10 GMT 唯一时间戳。我想要带有我的请求 URL 的时间戳。
  • 我已更新帖子以包含请求网址。如果您不想要“GET”或“POST”之类的,只需从字符串中取出:method
  • 我使用 app.use(morgan(':method :url :status :response-time :date[clf]')); 解决了它
  • 彼得,你能告诉我如何包含颜色吗?
  • 这部分似乎有点困难。在此处查看源文件的第 150 行:github.com/expressjs/morgan/blob/master/index.js ... 我认为您需要使用 compile 以及像 \x1b[] 这样的特殊格式字符。老实说,它可能不值得一看,因为它没有官方 API。如果你发现你真的需要知道如何做到这一点,它可能需要另一个问题,所以这个问题不是“太宽泛”。
猜你喜欢
  • 2014-08-24
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多