¿Qué tiene que ver el módulo `morgan` con las aplicaciones express?

82

En un tutorial rápido, el autor estaba usando npm module morgan. ¿Qué puede hacer Morgan por una aplicación exprés? ¿Alguien podría ayudarme a entender esto?

Conseguí esto buscando en Google, pero no entiendo nada aquí:

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
fuente
1
morganes un registrador npmjs.org/package/morgan . En caso de duda, vaya al sitio de npm.
ahorak
15
La pregunta no es solo una duda, estoy buscando algún ejemplo significativo para entenderlo correctamente.
3gwebtrain

Respuestas:

106

Morgan se utiliza para registrar los detalles de la solicitud. Sin embargo, el fragmento de su pregunta no tiene sentido porque en realidad no es un solo fragmento coherente de arriba a abajo. Es una serie de ejemplos de los distintos tipos de opciones que puede pasar a morgan. En un programa real, solo necesitaría uno de ellos. Por ejemplo:

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
fuente
5
Lo siento, no entendí el "combinado", ¿puedes explicarlo, por favor?
Kannan T,
14
Morgan admite un puñado de formatos de registro predefinidos con nombres / estructuras bien conocidos. combinado, común, dev, corto, diminuto. Esa cadena le dice a Morgan qué formato de registro le gustaría usar. npmjs.com/package/morgan#predefined-formats
Peter Lyons
3
@RotimiBest Por defecto, los registros se escriben en la salida estándar (la salida normal de la consola de su programa). También puede pasar opciones de configuración si desea escribir en un archivo en particular en el sistema de archivos.
Peter Lyons
23

Morgan es básicamente un registrador, en cualquier solicitud que se realice, genera registros automáticamente.

Krishna Ganeriwal
fuente
2
Tal vez sea una pregunta tonta, pero ¿dónde se almacenan los registros, en un archivo o std.out?
rotimi-best
2
@RotimiBest, el módulo escribe de forma predeterminada en la salida estándar (salida de la consola). Sin embargo, se puede configurar fácilmente para escribir estos registros en un archivo personalizado en el sistema de archivos.
Krishna Ganeriwal
5

Morgan: es otro middleware de registro de solicitudes HTTP para Node.js. Simplifica el proceso de registro de solicitudes en su aplicación. Puede pensar en Morgan como un ayudante que recopila registros de su servidor, como los registros de solicitudes. Ahorra tiempo a los desarrolladores porque no tienen que crear manualmente registros comunes. Estandariza y crea automáticamente registros de solicitudes.

Morgan puede operar de forma independiente, pero comúnmente se usa en combinación con Winston. Winston puede transportar registros a una ubicación externa o consultarlos al analizar un problema.

Elle Kiumarsian
fuente
¿Puede dar un ejemplo del uso de Morgan? No lo entiendo.
Rohan Devaki
3

Morgan es un registrador de middleware de solicitudes HTTP popular para Node.js y básicamente se utiliza como registrador. Se puede utilizar con el paquete winston de node js para consolidar los registros de datos de solicitudes HTTP con otra información.

Ravi Malviya
fuente