【问题标题】:NodeJS - morgan immediate option default valueNodeJS - 摩根立即选项默认值
【发布时间】:2019-03-29 23:47:08
【问题描述】:

根据documentationmorgan 接受两个参数 - 格式字符串和选项对象。选项对象提到:

立即

根据请求而不是响应写入日志行。这意味着一个 即使服务器崩溃,请求也会被记录,但是来自 响应(如响应代码、内容长度等)不能 记录。

我不清楚immediate 的默认值是什么,因为我根本没有使用options 对象。是布尔值吗?

在我的 Mac 上,我可以看到我的 NodeJS 应用程序的日志。当作为二进制文件移植到 Windows 时,不会报告所有响应项(状态、内容长度和响应时间)(即显示为破折号)。

你能推荐一下吗?

【问题讨论】:

    标签: node.js logging morgan


    【解决方案1】:

    查看source code 会发现默认选项对象是{}

     59  function morgan (format, options) {
     60    var fmt = format
     61    var opts = options || {}                // opts == {}
    

    所以要回答这个问题,它不是布尔值,而是因为沿途处理事情的方式

    133  if (immediate) {                         // immediate == undefined
    134    // immediate log
    135    logRequest()
    136  } else {
    137    // record response start
    138    onHeaders(res, recordStartTime)
    139
    140    // log when response finished
    141    onFinished(res, logRequest)
    142  }
    

    默认值为falsey,因此在响应完成后进行日志记录。

    【讨论】:

    • 感谢您的回答和源代码参考! “响应完成后”如何识别?
    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多