Was hat das Morgan-Modul mit Express-Apps zu tun?

82

In einem Express-Tutorial verwendete der Autor die npm module morgan. Was kann Morgan für eine Express-App tun? Könnte mir jemand helfen, das zu verstehen?

Ich habe das durch googeln bekommen, aber ich verstehe hier nichts:

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
quelle
1
morganist ein Logger npmjs.org/package/morgan . Wenn Sie Zweifel haben, gehen Sie zur npm-Site.
Nowk
15
Die Frage ist nicht nur ein Zweifel, ich suche nach einem aussagekräftigen Beispiel, um es richtig zu verstehen.
3gwebtrain

Antworten:

108

Morgan wird zum Protokollieren von Anforderungsdetails verwendet. Das Snippet in Ihrer Frage ist jedoch nicht sinnvoll, da es sich nicht um ein einzelnes zusammenhängendes Snippet von oben nach unten handelt. Es ist eine Reihe von Beispielen für die verschiedenen Arten von Optionen, die Sie an Morgan weitergeben können. In einem echten Programm würden Sie nur einen von ihnen benötigen. Zum Beispiel:

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
quelle
5
Entschuldigung, ich habe das "Kombinierte" nicht verstanden. Kannst du es bitte erklären?
Kannan T
15
Morgan unterstützt eine Handvoll vordefinierter protokollierter Formate mit bekannten Namen / Strukturen. kombiniert, gemeinsam, dev, kurz, winzig. Diese Zeichenfolge gibt Morgan an, welches Protokollformat verwendet werden soll. npmjs.com/package/morgan#predefined-formats
Peter Lyons
3
@RotimiBest Standardmäßig schreiben die Protokolle in den Standardausgang (die normale Konsolenausgabe Ihres Programms). Sie können auch Konfigurationsoptionen übergeben, wenn Sie in eine bestimmte Datei im Dateisystem schreiben möchten.
Peter Lyons
25

Morgan ist im Grunde ein Logger. Bei allen Anfragen werden automatisch Protokolle erstellt.

Krishna Ganeriwal
quelle
2
Vielleicht eine blöde Frage, aber wo werden die Protokolle in einer Datei oder in std.out gespeichert?
Rotimi-am besten
2
@RotimiBest schreibt das Modul standardmäßig in den Standardausgang (Konsolenausgabe). Es kann jedoch einfach konfiguriert werden, um diese Protokolle in eine benutzerdefinierte Datei im Dateisystem zu schreiben.
Krishna Ganeriwal
5

Morgan: ist eine weitere HTTP-Request-Logger-Middleware für Node.js. Dies vereinfacht das Protokollieren von Anforderungen in Ihrer Anwendung. Sie können sich Morgan als einen Helfer vorstellen, der Protokolle von Ihrem Server sammelt, z. B. Ihre Anforderungsprotokolle. Dies spart Entwicklern Zeit, da sie keine allgemeinen Protokolle manuell erstellen müssen. Es standardisiert und erstellt automatisch Anforderungsprotokolle.

Morgan kann eigenständig arbeiten, wird jedoch üblicherweise in Kombination mit Winston verwendet. Winston kann Protokolle an einen externen Speicherort transportieren oder bei der Analyse eines Problems abfragen.

Elle Kiumarsian
quelle
Kannst du ein Beispiel für die Verwendung von Morgan geben? Ich verstehe dich nicht.
Rohan Devaki
3

Morgan ist ein beliebter Middleware-Logger für HTTP-Anforderungen für Node.js und wird im Wesentlichen als Logger verwendet. Es kann mit dem Winston-Paket von Node Js verwendet werden, um HTTP-Anforderungsdatenprotokolle mit anderen Informationen zu konsolidieren.

Ravi Malviya
quelle