errorhandler middleware
Erro somente-desenvolvedor de middleware.
This middleware is only intended to be used in a development environment, as the full error stack traces and internal details of any object passed to this module will be sent back to the client when an error occurs.
Quando um objeto é fornecido para Expresso como um erro, este módulo será exibido a tanto quanto possível sobre este objeto. e o fará usando a negociação de conteúdo para a resposta entre HTML, JSON e texto sem formatação.
- Quando o objeto é um objeto padrão
Erro, a string fornecida pela propriedadestackserá retornada em respostas HTML/texto. - Quando o objeto é um objeto que não é um objeto
Erro, o resultado de util.inspect será retornado em respostas HTML/texto. - Para respostas JSON, o resultado será um objeto com todas as propriedades enumeráveis do objeto na resposta.
Instale
Este é um módulo Node.js disponível através do
registro do npm. A instalação é feita usando o comando
npm install:
$ npm install errorhandlerAPI
var errorhandler = require('errorhandler');fileiras(opcions)
Crie um novo middleware para lidar com erros e responder com negociação de conteúdo.
Opções
O manipulador de erros aceita estas propriedades no objeto de opções.
registro
Forneça uma função a ser chamada com o erro e uma representação string de
o erro. Pode ser usado para escrever o erro em qualquer local desejado, ou definido como
false para somente enviar o erro de volta na resposta. Chamado como
log(err, str, req, res) onde err é o objeto Error, str é uma string
representando o erro, req é o objeto de solicitação e res é o objeto de resposta
(note esta função é chamada depois que a resposta foi
escrita).
O valor padrão para esta opção é ‘true’, a menos que process.env.NODE_ENV === 'test'.
Valores possíveis:
true: Registra erros usandoconsole.error(str).false: Só envie o erro de volta à resposta.- Uma função: passe o erro para uma função de manipulação.
Exemplos
Exemplo simples
Exemplo básico de adicionar este middleware como o manipulador de erro apenas no desenvolvimento
com connect (express também pode ser usado neste exemplo).
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());}Local de saída personalizado
Às vezes você pode querer enviar os erros para um local diferente do STDERR durante o desenvolvimento, como uma notificação do sistema, por exemplo.
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, });}