koaエラー処理ミドルウェアkoa-json-error

1339 ワード

インターフェイスを書く時、jsonフォーマットに戻り、読みやすいエラーメッセージが必要です.
インストールは、koa-json-errorを使用します.
npm i koa-json-error -S
const error = require('koa-json-error')`
app.use(error({
	postFormat: (e, { stack, ...rest }) => process.env.NODE_ENV === 'production' ? rest : { stack, ...rest }
}))
エラーはデフォルトでスタック情報を投げます.生産環境ではユーザーに返す必要がなく、開発環境で表示すればいいです.
412エラーの先決条件が間違っています.
// code 
ctx.throw(412, '      :id      ')
エラー情報を返します
{
    "message":"      :id      ",
    "name":"PreconditionFailedError",
    "status":412
}
500エラー
シミュレーションエラーコード
a.b
{
    "name": "ReferenceError",
    "message": "a is not defined",
    "status": 500
}
404エラー
要求に応答しないurlスタックの例
{
    "stack":"NotFoundError: Not Found
				at Object.throw (/Users/zj/code/koa-restful/node_modules/koa/lib/context.js:97:11)
				at next.then (/Users/zj/code/koa-restful/node_modules/koa-json-error/lib/middleware.js:52:58)
				at process._tickCallback (internal/process/next_tick.js:68:7)",
    "message":"Not Found",
    "name":"NotFoundError",
    "status":404
}