黑人的命也是命。
支持平等正义倡议.

errorhandler

NPM Version NPM Downloads Build Status Test Coverage

仅限开发的错误处理中间件。

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

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

  • 当对象是标准的 Error 对象时,stack 属性提供的字符串将在 HTML/文本响应中返回。
  • 当对象是非 Error 对象时,util.inspect 的结果将在 HTML/文本响应中返回。
  • 对于 JSON 响应,结果将是一个对象,其中包含响应中对象的所有可枚举属性。

安装

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

$ npm install errorhandler

API

var errorhandler = require('errorhandler')

errorhandler(options)

创建新的中间件来处理错误并使用内容协商进行响应。

选项

错误处理程序在选项对象中接受以下属性。

日志

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

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

可能的值

  • true:使用 console.error(str) 记录错误。
  • false:仅将错误发送回响应中。
  • 函数:将错误传递给函数以进行处理。

示例

简单示例

使用 connectexpress 也可用于此示例)在开发中仅将此中间件添加为错误处理程序的基本示例。

var connect = require('connect')
var errorhandler = require('errorhandler')

var app = connect()

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

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