NodeJS - значение по умолчанию для немедленной опции morgan - PullRequest
0 голосов
/ 25 октября 2018

Согласно документации , morgan принимает два аргумента - строку формата и объект параметров.Объект опций упоминает:

немедленный

Запись строки журнала по запросу вместо ответа.Это означает, что запросы будут регистрироваться, даже если сервер выходит из строя, но данные из ответа (например, код ответа, длина содержимого и т. Д.) Не могут быть зарегистрированы.

Мне не ясно, чтозначение по умолчанию для immediate, так как я вообще не использую объект options.Это логическое значение?

На моем Mac я вижу журналы моего приложения NodeJS.При переносе в Windows в двоичном виде все элементы ответа (состояние, длина содержимого и время ответа) не отображаются (то есть рассматриваются как тире).

Не могли бы вы предложить?

1 Ответ

0 голосов
/ 26 октября 2018

Взглянув на исходный код , вы обнаружите, что объект параметров по умолчанию - {}.

 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 , и поэтому ведение журнала выполняется после завершения ответа.

...