PCがあれば何でもできる!スマートフォン用の表示で見るPCがあれば何でもできる!へっぽこアラサープログラマーが、覚えたての知識を得意げにお届けしますこの広告は、90日以上更新していないブログに表示しています。APIを作っていて、エラー時のレスポンスをどうしようかなぁ、とごにょごにょ考えていました。できれば、エラー内容毎に、レスポンスのステータスコードを切り分けたいクライアント側でエラーの種類を判別するために、独自のエラーコードも出力したいエラー内容がなんとなくわかるメッセージは出力したいエラー内容毎に、ログに出力するか否かも切り分けたい(システム的なエラーでない限りログに出てほしくないので)の4点はクリアしたいなと。これって一般的な方法はあるんでしょうか?調べてわからなかったので、自前で実装してみました。ソースコードはこちらにアップしてます。AbstractError;Errorオブジェクトは、nameプロパティにエラー名を持っています。JavaScript標準のRangeErrorだと、RangeErrorという文字列が入っています。このnameプロパティに、this.constructor.nameで自身のクラス名を入れることによって、子クラスが毎回エラー名を定義しなくて良くなります。Original1Error;エラーメッセージが毎回変わるものではない場合、メッセージの引数はなしにして、superに固定で入れたほうが良いと思います。expandError;definitionsにエラー毎の値を設定してきます。配列の1つ目がステータスコード、2つ目がエラーコード、3つ目がログ出力の有無となっています。後は、expandError関数にErrorオブジェクトを突っ込むだけです。${server.address().port}`);});404では、自作したRouteNotFoundErrorをnextに送るだけにし、実際には最後のエラー処理ミドルウェアで処理しています。エラー処理ミドルウェアでは、expandError関数でエラーオブジェクトを拡張後、ログ出力の必要性があれば出力、最後にRESTでレスポンスを返しています。終わりに正しい実装方法があれば、ぜひご教示ください!よろしくお願いします。将範フリーランス/エンジニア(主にサーバサイド、その他広く浅く)自宅の作業場は冷蔵庫の隣。キッチンエンジニアとして日々精進しています。(1)はてなブログをはじめよう!m_doi2さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。