Introducción a Morgan.js

Morgan es un middleware que registra requests y errores HTTP. El middleware es simplemente una función que tiene acceso a los métodos del ciclo de vida de solicitud y respuesta. Podemos usar formatos predefinidos o crear nuevos para formatear nuestros registros.

Instalación de morgan:

Paso 1: puede visitar a morgan para obtener la documentación. El paquete se puede instalar con este comando.

npm install morgan

Paso 2:  una vez completada la instalación, puede verificar la versión instalada del paquete con este comando:

npm ls morgan

Paso 3:  para comenzar a trabajar con morgan, cree un archivo con el nombre index.js. El paquete se puede incluir en index.js con este comando.

const morgan = require('morgan')

Paso 4:  para usar morgan, debemos invocar una instancia y pasarla como argumento a app.use(), que es un middleware rápido antes de las requests HTTP. Esto puede hacerse de la siguiente manera:

app.use(morgan(string));

La string anterior define el formato en el que queremos registrar nuestra información.

Estructura del proyecto: La estructura del proyecto se verá como la imagen de abajo.

Morgan tiene cinco formatos predefinidos que podemos usar directamente para obtener la información requerida. Estos son:

  1. combinado:   Proporciona los registros de formato combinado estándar de Apache.
  2. common: proporciona una salida de registro común estándar de Apache.
  3. dev: es un formato de registro codificado por colores.
  4. short: Es más corto que el formato predeterminado. También incluye el tiempo de respuesta.
  5. tiny: Es el log más corto que contiene muy poca información.

El formato de salida de todos estos formatos predefinidos se puede encontrar aquí .

Ejemplo 1:

index.js

// Requiring modules
const express = require("express");
const morgan = require("morgan");
const app = express();
  
// Using combined predefined format
app.use(morgan("combined"));
  
// Creating an endpoint where 
// requests can be made and
// we can get logs
app.get("/", (req, res) => {
  res.send("GeeksforGeeks");
});
  
// Running on PORT
const PORT = 5000;
  
app.listen(PORT, () => {
  console.log(`Running on PORT: ${PORT}`);
});

Paso para ejecutar la aplicación: En la terminal ejecute el siguiente comando para ejecutar el archivo index.js.

node index.js

Producción:

::1 - - [10/Feb/2021:22:18:30 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0
(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/88.0.4324.150 Safari/537.36"

Cuando visite https://localhost:5000, el registro anterior aparecerá en la consola. El registro nos brinda información diversa, como la fecha y la hora en que se realizó la solicitud, el método de solicitud, que en este caso es GET , a qué URL se realizó la solicitud, que es ‘ /’ , y mucho más.

Ejemplo 2:

index.js

// Requiring modules
const express = require("express");
const morgan = require("morgan");
const app = express();
  
// Using dev predefined format
// Returns
app.use(morgan("dev"));
  
// Creating an endpoint where
// requests can be made and
// we can get logs
app.get("/home", (req, res) => {
  res.send("GeeksforGeeks");
});
  
// Running on PORT
const PORT = 5000;
  
app.listen(PORT, () => {
  console.log(`Running on PORT: ${PORT}`);
});

Producción:

Cuando visite «https://localhost:5000», el resultado será:

GET / 404 4.031 ms - 139

Como no tenemos ningún punto final para la URL “/” , terminamos obteniendo un error 404 con el método de tipo GET y el tiempo de respuesta en milisegundos.

Cuando visite «https://localhost:5000/home», el resultado será:

GET /home 200 3.416 ms - 13

En nuestro programa, hemos creado un punto final de «/home» por lo que obtenemos una respuesta de 200 a cambio.

Ejemplo 3:

index.js

// Requiring modules
const express = require("express");
const morgan = require("morgan");
const app = express();
  
// Creating customised logs
// :method return method used like - GET,POST
// :url returns to which url request was made
// :status returns the status returned from req like - 200,404
// :response-time returns the time it took to give response
// Rest things are printed as it is
app.use(
  morgan(
    "Method- :method URL- :url Status- :status ResponseTime-  :response-time ms"
  )
);
  
// Creating an endpoint where
// requests can be made and
// we can get logs
app.get("/home", (req, res) => {
  res.send("GeeksforGeeks");
});
  
// Running on PORT
const PORT = 5000;
  
app.listen(PORT, () => {
  console.log(`Running on PORT: ${PORT}`);
});

Producción:

Method- GET URL- /home Status- 200 ResponseTime-  3.392 ms

En el programa anterior, hemos personalizado nuestro registro de salida. El formato es : seguido del nombre de la información. Estos son tokens predefinidos que se pueden agregar usando delante de ellos.

También podemos crear tokens personalizados con la ayuda del método .token(). Vea el siguiente ejemplo:

Ejemplo 4:

index.js

// Requiring modules
const express = require("express");
const morgan = require("morgan");
const app = express();
  
// Creating custom token
// with name time
morgan.token(
  "time",
  " :method request for :url was received.Response time: :response-time"
);
  
// Using the name of
// token we created above
app.use(morgan("time"));
  
// Creating an endpoint where
// requests can be made and
// we can get logs
app.get("/home", (req, res) => {
  res.send("GeeksforGeeks");
});
  
// Running on PORT
const PORT = 5000;
  
app.listen(PORT, () => {
  console.log(`Running on PORT: ${PORT}`);
});

Producción:

GET request for /home was received.Response time: 5.567

Morgan es un registrador muy simple que permite flexibilidad al registrar requests HTTP y nos brinda la información requerida. Así es como podemos usar morgan en nuestra aplicación

Publicación traducida automáticamente

Artículo escrito por pritishnagpal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *