黑人生命也是命。
支持平等正義倡議.

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 是回應物件(注意,此函式是在回應寫入之後呼叫的)。

此選項的預設值為 true,除非 process.env.NODE_ENV === 'test'

可能的數值

  • 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