Какое отношение имеет модуль morgan к экспресс-приложениям?

84

В экспресс-учебнике автор использовал расширение npm module morgan. Что Морган может сделать для экспресс-приложения? Может ли кто-нибудь помочь мне понять это?

Получил это в гугле, но здесь я ничего не понимаю:

var express = require('express')
var morgan  = require('morgan')

var app = express()
app.use(morgan('combined'))
morgan('combined')

morgan(':remote-addr :method :url')

morgan(function (tokens, req, res) {
  return req.method + ' ' + req.url
})
3gwebtrain
источник
1
morganэто регистратор npmjs.org/package/morgan . В случае сомнений перейдите на сайт npm.
nowk
16
вопрос не просто в сомнении, я ищу какой-нибудь значимый пример, чтобы понять его как следует.
3gwebtrain

Ответы:

109

Морган используется для регистрации деталей запроса. Однако фрагмент в вашем вопросе не имеет смысла, потому что на самом деле это не единый согласованный фрагмент сверху вниз. Это серия примеров различных типов опций, которые вы можете передать Morgan. В реальной программе вам понадобится только один из них. Например:

var express = require('express')
var morgan  = require('morgan')

var app = express()
//This tells express to log via morgan
//and morgan to log in the "combined" pre-defined format
app.use(morgan('combined'))
//That's it. Everything in your snippet after this are just
//other variations your might want to use
Питер Лайонс
источник
5
Извините, я не понял "комбинированный", вы можете объяснить это, пожалуйста?
Kannan T
15
Morgan поддерживает несколько предварительно определенных форматов журналов с хорошо известными именами / структурами. комбинированный, общий, разработчик, короткий, крошечный. Эта строка сообщает Morgan, какой формат журнала вы хотите использовать. npmjs.com/package/morgan#predefined-formats
Питер Лайонс,
3
@RotimiBest По умолчанию журналы записываются в стандартный вывод (обычный вывод вашей программы на консоль). Вы также можете передать параметры конфигурации, если хотите записать в определенный файл в файловой системе.
Питер Лайонс
25

Morgan - это, по сути, регистратор, при любых сделанных запросах он автоматически генерирует журналы.

Кришна Ганеривал
источник
2
Может быть, глупый вопрос, но где хранятся логи, в файле или на std.out?
rotimi-best
2
@RotimiBest модуль по умолчанию записывает в std out (вывод консоли). Однако его можно легко настроить для записи этих журналов в специальный файл в файловой системе.
Кришна Ганеривал
5

Morgan: еще одно промежуточное программное обеспечение регистратора HTTP-запросов для Node.js. Это упрощает процесс регистрации запросов к вашему приложению. Вы можете думать о Моргане как о помощнике, который собирает журналы с вашего сервера, такие как журналы ваших запросов. Это экономит время разработчиков, поскольку им не нужно вручную создавать общие журналы. Он стандартизирует и автоматически создает журналы запросов.

Morgan может работать автономно, но обычно он используется в сочетании с Winston. Winston может передавать журналы во внешнее хранилище или запрашивать их при анализе проблемы.

Эль Киумарсиан
источник
Вы можете привести пример использования моргана, я вас не понимаю.
Рохан Деваки
3

Morgan - популярный регистратор промежуточного программного обеспечения HTTP-запросов для Node.js, который в основном используется в качестве регистратора. Его можно использовать с пакетом winston node js для объединения журналов данных HTTP-запросов с другой информацией.

Рави Мальвия
источник