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 Error estándar, la cadena proporcionada por la propiedad stack se 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:

Ventana de terminal
npm install errorhandler

API

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 usando console.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 user
if (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 user
if (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,
});
}

Licencia

MIT