middleware errorhandler
middleware de manejo de errores solo para desarrollo.
Este middleware está pensado solo para usarse en un entorno de desarrollo, ya que las trazas completas de error y los detalles internos de cualquier objeto pasado a este módulo se enviarán de vuelta al cliente cuando ocurra un error.
Cuando se proporciona un objeto a Express como error, este módulo mostrará tanta información como sea posible sobre este objeto, y lo hará usando negociación de contenido para la respuesta entre HTML, JSON y texto plano.
- Cuando el objeto es un objeto
Errorestándar, la cadena proporcionada por la propiedadstackse devolverá en las respuestas HTML/texto. - Cuando el objeto no es un objeto
Error, el resultado de util.inspect se devolverá en las respuestas HTML/texto. - Para respuestas JSON, el resultado será un objeto con todas las propiedades enumerables del objeto en la respuesta.
Instalar
Este es un módulo de Node.js disponible a través del
registro npm. La instalación se hace usando el
comando npm install:
npm install errorhandleryarn add errorhandlerpnpm add errorhandlerbun add errorhandlerAPI
var errorhandler = require('errorhandler');errorhandler(options)
Crea un nuevo middleware para manejar errores y responder con negociación de contenido.
Opciones
El manejador de errores acepta estas propiedades en el objeto de opciones.
log
Proporciona una función para ser llamada con el error y una representación en
cadena del error. Puede usarse para escribir el error en cualquier ubicación deseada,
o establecerse como false para solo enviar el error de vuelta en la respuesta. Se llama
como log(err, str, req, res) donde err es el objeto Error, str es una
representación en cadena del error, req es el objeto de petición y res es el
objeto de respuesta (nota, esta función se invoca después de que la respuesta
haya sido escrita).
El valor por defecto para esta opción es true a menos que process.env.NODE_ENV === 'test'.
Valores posibles:
true: Registra los errores usandoconsole.error(str).false: Solo envía el error de vuelta en la respuesta.- Una función: pasa el error a una función para su manejo.
Ejemplos
Ejemplo simple
Ejemplo básico de añadir este middleware como manejador de errores solo en desarrollo
con connect (express también puede usarse en este ejemplo).
var connect = require('connect');var errorhandler = require('errorhandler');
var app = connect();
// assumes NODE_ENV is set by the userif (process.env.NODE_ENV === 'development') { // only use in development app.use(errorhandler());}Ubicación de salida personalizada
A veces puedes querer enviar los errores a una ubicación distinta de STDERR durante el desarrollo, como una notificación del sistema, por ejemplo.
var connect = require('connect');var errorhandler = require('errorhandler');var notifier = require('node-notifier');
var app = connect();
// assumes NODE_ENV is set by the userif (process.env.NODE_ENV === 'development') { // only use in development app.use(errorhandler({ log: errorNotification }));}
function errorNotification(err, str, req) { var title = 'Error in ' + req.method + ' ' + req.url;
notifier.notify({ title: title, message: str, });}