私はa
というコールバックを受け付ける関数を持っています。コールバックはエラーがある場合に呼び出されます。Expressリクエストで返されるエラーメッセージを作成する正しい方法は何ですか?
a
は、Expressルート要求で呼び出されます。エラーがある場合、エラーは要求の応答でなければなりません。
function a(cb) {
cb(new Error('Some error message'))
}
app.get('/', function (req, res) {
a(function (error) {
if (error) {
res.json(error, 400)
}
res.send('No error')
})
})
私はExpress用のコードに見てきた、そしてres.json
が私error
を文字列化することが表示されます。しかし、この結果は、空の文字列です:
> var e = new Error('Some error message')
undefined
> JSON.stringify(e)
'{}'
> e.message
'Some error message'
、このような私のルートにエラーオブジェクトtoString
を変換として、私は私のルートはここでエラーメッセージを返すように得ることができる方法があります。しかし、Node APIでエラーメッセージをフォーマットするのがベストプラクティスであることと、それがここで変更されるかどうかを知りたいと思います。私は違った私のエラーメッセージをフォーマットする必要があり、または私はちょうどルートにError
オブジェクトを処理する必要があり、のような:
res.json({ error: error.message }, 400)
なぜe.messageが欠落しているかの詳細:http://stackoverflow.com/questions/18391212/is-it-not-possible-to-stringify-an-error-using-json-stringify – Smartkid