Cómo utilizar Morgan en tu proyecto Express
Introducción
Morgan es un middleware de Node.js y Express que registra solicitudes HTTP y errores, y simplifica el proceso. En Node.js y Express, el middleware es una función que tiene acceso a los métodos de ciclo de vida request
y response
de ejecución, y al next()
método para continuar la lógica en su servidor Express.
En este artículo explorará cómo implementar Morgan en su proyecto Express.
Prerrequisitos
Para seguir este artículo necesitarás:
- Se recomienda tener conocimientos generales de Node.js, pero no es obligatorio. Para obtener más información sobre Node.js, consulta nuestra serie Cómo codificar en Node.js.
- Node.js instalado localmente, lo cual puedes hacer siguiendo Cómo instalar Node.js y crear un entorno de desarrollo local .
Paso 1 – Configuración del proyecto
Como Express.js es un marco de Node.js, asegúrese de tener la última versión de Node.js antes de continuar.
Para incluir a Morgan en su proyecto Express, deberá instalarlo como una dependencia.
Crea un nuevo directorio con el nombre express-morgan
de tu proyecto:
- mkdir express-morgan
Cambiar al nuevo directorio:
- cd express-morgan
Inicialice un nuevo proyecto de Node con valores predeterminados. Esto incluirá su package.json
archivo para acceder a sus dependencias:
- npm init -y
Instalar morgan como dependencia:
- npm install morgan --save
Crea tu archivo de entrada. index.js
Aquí es donde manejarás la lógica en tu servidor Express:
- touch index.js
Ahora que ha agregado Morgan a su proyecto, incluyámoslo en su servidor Express. En su index.js
archivo, cree una instancia de Express y solicite morgan
:
índice.js
const express = require('express');const morgan = require('morgan');const app = express();app.listen(3000, () = { console.debug('App listening on :3000');});
Ahora que su servidor Express está configurado, veamos cómo usar Morgan para agregar el registro de solicitudes.
Paso 2 – Uso de Morgan en Express
Para utilizar morgan en su servidor Express, puede invocar una instancia y pasarla como argumento en el .use()
middleware antes de sus solicitudes HTTP. morgan viene con un conjunto de valores preestablecidos, o cadenas de formato predefinidas, para crear un nuevo middleware de registrador con formato y opciones integrados. El valor preestablecido tiny
proporciona la salida mínima al registrar solicitudes HTTP.
En su index.js
archivo, invoque el app.use()
middleware Express y pase morgan()
como argumento:
índice.js
const app = express();app.use(morgan('tiny'));
Incluir el ajuste preestablecido tiny
como argumento morgan()
utilizará su método integrado, identificará la URL, declarará un estado y el tiempo de respuesta de la solicitud en milisegundos.
Alternativamente, Morgan lee ajustes preestablecidos como tiny
en una cadena de formato definida a continuación:
morgan(':method :url :status :res[content-length] - :response-time ms');
Esto tiende a la misma funcionalidad contenida en el tiny
valor preestablecido en un formato que Morgan analiza. Después del :
símbolo se encuentran las funciones de Morgan llamadas tokens. Puede utilizar la cadena de formato para definir tokens y crear su propio middleware de Morgan personalizado.
Paso 3 – Creando tus propios tokens
Los tokens en morgan son funciones identificadas después del :
símbolo. morgan te permite crear tus propios tokens con el .token()
método.
El .token()
método acepta un tipo, o el nombre del token como primer argumento, después de una función de devolución de llamada. Morgan ejecutará la función de devolución de llamada cada vez que se produzca un registro utilizando el token. Como middleware, Morgan aplica los objetos req
y res
como argumentos.
En su index.js
archivo, emplee el .token()
método y pase un tipo como primer argumento después de una función anónima:
índice.js
morgan.token('host', function(req, res) { return req.hostname;});
La función de devolución de llamada anónima devolverá el hostname
objeto req
como un nuevo token para usar en una solicitud HTTP en su servidor Express.
Paso 4: Diseño de tokens con argumentos personalizados
Para indicar argumentos personalizados, puede utilizar corchetes para definir los argumentos que se pasan a un token. Esto permitirá que sus tokens acepten argumentos adicionales. En su index.js
archivo, aplique un argumento personalizado a la cadena de formato Morgan en el :param
token:
índice.js
app.use(morgan(':method :host :status :param[id] :res[content-length] - :response-time ms'));morgan.token('param', function(req, res, param) { return req.params[param];});
El argumento personalizado id
del :param
token en la invocación de Morgan incluirá la ID en el parámetro que sigue al .token()
método.
Conclusión
Morgan permite flexibilidad al registrar solicitudes HTTP y actualiza el estado preciso y el tiempo de respuesta en cadenas de formato personalizadas o en valores preestablecidos. Para obtener más información, consulte la documentación de Morgan .
Deja una respuesta