Co ma wspólnego moduł `morgan` z aplikacjami ekspresowymi?

84

W ekspresowym samouczku autor używał rozszerzenia npm module morgan. Co może zrobić Morgan dla aplikacji ekspresowej? Czy ktoś mógłby mi pomóc to zrozumieć?

Mam to przez googlowanie, ale nic tu nie rozumiem:

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
źródło
1
morganto logger npmjs.org/package/morgan . W razie wątpliwości przejdź na stronę npm.
nowk
16
pytanie to nie tylko wątpliwość, szukam jakiegoś sensownego przykładu, aby właściwie zrozumieć.
3gwebtrain

Odpowiedzi:

109

Morgan służy do logowania szczegółów żądania. Jednak fragment Twojego pytania nie ma sensu, ponieważ w rzeczywistości nie jest to pojedynczy spójny fragment od góry do dołu. Jest to seria przykładów różnych typów opcji, które możesz przekazać firmie Morgan. W prawdziwym programie potrzebujesz tylko jednego z nich. Na przykład:

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
Peter Lyons
źródło
5
Przepraszam, że nie zrozumiałem „połączonego”, czy możesz to wyjaśnić?
Kannan T
15
Morgan obsługuje kilka wstępnie zdefiniowanych formatów rejestrowanych z dobrze znanymi nazwami / strukturami. połączone, wspólne, dev, short, tiny. Ten ciąg mówi morganowi, jakiego formatu dziennika chcesz użyć. npmjs.com/package/morgan#predefined-formats
Peter Lyons
3
@RotimiBest Domyślnie dzienniki są zapisywane na standardowe wyjście (normalne wyjście konsoli programu). Możesz także przekazać opcje konfiguracyjne, jeśli chcesz pisać do określonego pliku w systemie plików.
Peter Lyons
25

Morgan jest w zasadzie rejestratorem, na każde żądanie generuje dzienniki automatycznie.

Krishna Ganeriwal
źródło
2
Może głupie pytanie, ale gdzie są przechowywane dzienniki, w pliku lub std.out?
rotimi-best
2
@RotimiBest moduł zapisuje domyślnie do wyjścia standardowego (wyjście konsoli). Można go jednak łatwo skonfigurować, aby zapisywał te dzienniki w niestandardowym pliku w systemie plików.
Krishna Ganeriwal
5

Morgan: to kolejne oprogramowanie pośredniczące do rejestrowania żądań HTTP dla Node.js. Upraszcza proces logowania żądań do aplikacji. Możesz myśleć o Morganie jako o pomocniku, który zbiera dzienniki z serwera, takie jak dzienniki żądań. Oszczędza to czas programistów, ponieważ nie muszą ręcznie tworzyć wspólnych dzienników. Standaryzuje i automatycznie tworzy dzienniki żądań.

Morgan może działać samodzielnie, ale często jest używany w połączeniu z Winstonem. Winston jest w stanie transportować dzienniki do zewnętrznej lokalizacji lub przesyłać do nich zapytania podczas analizy problemu.

Elle Kiumarsian
źródło
czy możesz podać przykład użycia morgana, nie rozumiem.
Rohan Devaki
3

Morgan to popularny program rejestrujący żądania HTTP dla oprogramowania pośredniego dla Node.js i zasadniczo używany jako rejestrator. Może być używany z pakietem winston node js do konsolidacji dzienników danych żądań HTTP z innymi informacjami.

Ravi Malviya
źródło