注意

本页面根据 errorhandler README 生成。

errorhandler

NPM Version NPM Downloads Build Status Test Coverage

仅在开发环境中使用的错误处理中间件。

此中间件仅适用于开发环境,因为当错误发生时,完整的错误堆栈跟踪和任何传递给此模块的对象的内部详情将被发送回客户端。

当向 Express 提供一个对象作为错误时,此模块将尽可能多地显示有关此对象的信息,并会通过内容协商在 HTML、JSON 和纯文本之间选择响应格式。

安装

这是一个通过 npm 注册表 提供的 Node.js 模块。安装使用 npm install 命令完成。

$ npm install errorhandler

API

var errorhandler = require('errorhandler')

errorhandler(options)

创建新的中间件以处理错误并根据内容协商进行响应。

选项

错误处理器接受选项对象中的以下属性。

log

提供一个函数,该函数将以错误和错误的字符串表示形式被调用。可用于将错误写入任何所需位置,或设置为 false 以仅在响应中返回错误。调用格式为 log(err, str, req, res),其中 errError 对象,str 是错误的字符串表示,req 是请求对象,res 是响应对象(注意,此函数在响应已写入之后调用)。

此选项的默认值为 true,除非 process.env.NODE_ENV === 'test'

可能的值

示例

简单示例

在开发环境中使用 connect(此示例中也可使用 express)作为错误处理程序添加此中间件的基本示例。

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())
}

自定义输出位置

有时您可能希望在开发过程中将错误输出到 STDERR 以外的位置,例如系统通知。

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
  })
}

许可证

MIT