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)

エラーを処理し、コンテンツネゴシエーションで応答するための新しいミドルウェアを作成します。

オプション

エラーハンドラーは、オプションオブジェクトでこれらのプロパティを受け入れます。

log

エラーとエラーの文字列表現で呼び出される関数を指定します。エラーを任意の場所に書き込むために使用できます。または、false に設定して、レスポンスでエラーのみを送信することもできます。log(err, str, req, res) として呼び出されます。ここで、errError オブジェクト、str はエラーの文字列表現、req はリクエストオブジェクト、res はレスポンスオブジェクトです(注:この関数はレスポンスが書き込まれた*後*に呼び出されます)。

このオプションのデフォルト値は、process.env.NODE_ENV === 'test' でない限り true です。

可能な値

  • true: console.error(str) を使用してエラーをログに記録します。
  • false: レスポンスでエラーのみを送信します。
  • 関数: 処理のためにエラーを関数に渡します。

簡単な例

connect(この例では express も使用できます)で、このミドルウェアを開発環境でのみエラーハンドラーとして追加する基本的な例。

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