Я полагаю, вы неправильно вызываете функцию morgan
.
Согласно документам :
morgan(format, options)
Создать новую функцию промежуточного программного обеспечения для morgan logger, используя заданный формат
и варианты. Аргументом формата может быть строка с предопределенным именем
(имена см. ниже), строка строки формата или функция
это приведет к записи в журнале.
Функция форматирования будет вызываться с тремя аргументами tokens, req,
и res ...
Поэтому, когда вы звоните:
app.use(morgan('myformat', function (tokens, req, res) {
return chalk.blue(tokens.method(req, res))
+ ' ' + chalk.green(tokens.url(req, res))
+ ' ' + chalk.red(tokens['response-time'](req, res))
}))
Второй аргумент (функция) не делает то, что вам нужно, потому что Морган считает, что это аргумент options
. Единственный способ добиться того, чего вы хотите - это объявить порядок токенов и их цвета внутри функции, которую вы передаете morgan
, как они показывают в примере :
const loggerMiddleware = morgan(function (tokens, req, res) {
return [
'[' + tokens['date'](req, res) + ']',
'[' + tokens["remote-addr"](req, res) + ']',
'"' + chalk.blue(tokens["method"](req, res)) + chalk.green(tokens["url"](req, res)) + '"',
// add more tokens here...
].join(' ')
});
app.use(loggerMiddleware);