banner

ブログ

Jul 20, 2023

Express.js アプリケーションのエラーを効率的に処理する 5 つの方法と実践的な例

処理できるさまざまなタイプのエラーと、Express.js を使用してそれらに対処する方法を確認します。

理想的なシナリオでは、API とバックエンド サービスを構築して運用環境にデプロイし、他の人がそれらを使用している間、座ってリラックスします。 残念ながら、現実の世界では、作成したプログラムにはほぼ確実にエラーやバグが含まれます。

このため、Express.js API とバックエンド サービスを開発するときは、さまざまなエラーがどのように発生するか、およびそれらを効果的に処理する方法を考慮することが重要です。

このようなシナリオを予測することで、アプリが障害を効果的に処理するだけでなく、ユーザーにシームレスなエクスペリエンスを提供できるようになります。

Express.js アプリケーションを開発すると、次のようなさまざまな種類のエラーが発生します。

Express.js REST API およびバックエンド サービスのエラーを効果的に処理するために使用できるさまざまな手法があります。

エラーを処理する簡単な方法は、エラーを捕捉して詳細をコンソールに記録することです。 このアプローチは、開発段階およびデバッグ段階でエラーを特定するのに役立ちます。

を使用することでコンソール.エラー()を使用すると、アプリケーション内のエラーの性質と場所についての洞察を得ることができます。 コード例は次のとおりです。

Express.js は、エラー管理を合理化するために、いくつかのエラー処理ミドルウェア パッケージを提供します。 そのようなパッケージの 1 つは、エクスプレスエラーハンドラー- これらのパッケージは、カスタム エラー メッセージやエラー ログ機能など、すぐに使用できる機能を提供することで、エラーの処理と応答を容易にします。

このパッケージを使用するには、プロジェクトにインストールする必要があります。

インストールすると、その機能を使用してアプリケーションのエラー処理機能を強化できます。

たとえば、上の例で、ユーザーが存在しないルートをリクエストしたとします。 ハンドラー関数はトリガーして、ユーザーをカスタム 404 エラー ページ (404.html) にリダイレクトします。 これにより、Express.js アプリケーションがページが見つからないエラーを効果的に処理できるようになります。

基本的に、これらのパッケージは、発生する可能性のあるエラーを管理するための、よりユーザーフレンドリーなアプローチを提供します。

try-catch ブロックを使用して同期および非同期プログラミング エラーを処理することは、Express.js の効果的な手法です。 同期コードの場合、エラーが発生しやすいセクションを try-catch ブロックでラップすることでエラーを管理できます。

以下は、使用中の try-catch ブロックを示すコード サンプルです。

ただし、データベースクエリなどの非同期操作を操作する場合や、Axios を使用する場合は、 API を使用するには、try-catch ブロックだけでは不十分な場合があります。 このような場合、次のように統合できるようになりました。非同期で待機するブロック内にキーワードを追加して、エラーをより効率的に処理します。

以下にサンプルコードを示します。

カスタム エラー処理ミドルウェアを使用すると、アプリケーションの要件に応じて、プログラムがエラーとそれに対応する応答を処理する方法を定義できます。

エラー処理ミドルウェア関数を作成すると、エラー管理を一元化してカスタマイズでき、アプリケーション全体にわたるエラーを処理するための、より組織的かつカスタマイズされたアプローチが保証されます。

カスタムミドルウェア関数のコード例を次に示します。

この例では、notFoundHandler関数がチェックするリソースリクエストURLのパラメータ。 指定された値に応じて、ハンドラー関数は、ユーザーや製品など、さまざまな種類のリソースに対するカスタム エラー メッセージで応答します。

明示的に処理されないその他のリソースについては、一般的なエラー メッセージが表示されます。 あるいは、このミドルウェア内で、発生した問題の解決方法を支援するカスタム エラー ページにユーザーをルーティングすることもできます。

このカスタム エラー処理ミドルウェアを使用すると、さまざまな状況に応じてエラー管理と応答を調整し、エラー処理をより具体的かつ有益なものにすることができます。

運用環境では、アプリケーション エラーを追跡するために、エラーのログ記録と監視を実装することが不可欠です。 使用できる効果的なツールには、Winston や Morgan などがあります。 これらのツールはエラーをファイル、集中サーバー、または監視プラットフォームに記録するため、問題を迅速に特定して解決できます。

共有