NodeJS-Morgan立即选项默认值

时间:2018-10-25 11:17:37

标签: node.js logging morgan

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

  

立即

     

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

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

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

你能建议吗?

1 个答案:

答案 0 :(得分:0)

查看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 ,因此在完成响应后进行记录。