Яке відношення має модуль `morgan` до експрес-додатків?


84

В експрес-підручнику автор використовував npm module morgan. Що може зробити 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
})

1
morganє реєстратором npmjs.org/package/morgan . Якщо ви сумніваєтесь, зайдіть на сайт npm.
nowk

16
питання не просто у сумніві, я шукаю якийсь вагомий приклад, щоб правильно зрозуміти.
3gwebtrain

Відповіді:


109

Morgan використовується для реєстрації деталей запиту. Однак фрагмент у вашому питанні не має сенсу, оскільки насправді це не єдиний цілісний фрагмент зверху вниз. Це низка прикладів різних типів варіантів, які ви можете передати 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

Морган: це ще одне проміжне програмне забезпечення реєстратора запитів HTTP для Node.js. Це спрощує процес реєстрації запитів до вашої програми. Ви можете подумати про Morgan як про помічника, який збирає журнали з вашого сервера, наприклад журнали запитів. Це економить час розробників, оскільки їм не потрібно вручну створювати загальні журнали. Він стандартизує та автоматично створює журнали запитів.

Морган може працювати самостійно, але зазвичай він використовується в поєднанні з Вінстоном. Вінстон може транспортувати журнали до зовнішнього місця або запитувати їх під час аналізу проблеми.


Ви можете навести приклад використання Morgan, я вас не розумію.
Рохан Девакі,

3

Morgan - це популярний реєстратор проміжного програмного забезпечення HTTP для Node.js, який в основному використовується як реєстратор. Його можна використовувати з пакетом winston node js для консолідації журналів даних запитів HTTP з іншою інформацією.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.