見出し画像

The Web Developer Bootcamp 2023 セクション43/61

エラー処理は、アプリケーションの堅牢性と期待通りの動作を保証する、ソフトウェア開発において不可欠な側面です。Yelp Campプロジェクトでは、エラー処理、検証、クライアントサイドの検証に焦点をあてています。その目的は、より優雅な方法でエラーを処理し、アプリケーションがスムーズに動作するようにすることです。スピーカーはYelp Campプロジェクトの次のステップを議論しており、それは次の数本のビデオで取り上げられる予定です。動画が終わる頃には、アプリはより優雅な方法でエラーを処理できるようになり、クライアント側のバリデーションでは、フィールドが空のままだと赤色になります。サーバー側では、Joy Joe.ieという新しいツールを使って、受信したリクエストボディを検証し、特定のパターンに一致することを確認してから、Mongoデータベースにキャンプ場を更新したり新規作成したりすることができます。

講師は、フォームに基本的なクライアントサイドのバリデーションを追加することについて議論しています。後者の実装はすべてのブラウザで標準化されていないため、ネイティブのHTML5 required属性の代わりにBootstrapのバリデーションヘルパーを使用しています。講演者は、フォーム・フィールドにrequired属性を追加し、フォームにno-validate属性を使用して、Bootstrapが検証を引き継ぐようにします。また、無効な場合はフォームが送信されないようにするためのJavaScriptも追加している。色覚異常が多いため、色だけでなくアイコンやシンボルを入れて有効性を示すことの重要性についても言及されています。

ソフトウェアアプリケーションにおけるエラー処理は、アプリケーションを円滑に動作させるために重要です。Yelp Campのプロジェクトでは、価格を数値にキャストしようとするとバリデーションエラーが発生するという問題に遭遇しています。このエラーは、Mongooseが入力を数字に変換しようとして失敗したために発生します。講師は、post リクエストを try-catch ブロックで囲み、エラーがあれば次の関数に渡すことを提案します。これによって、エラーをキャッチして、"Oh boy, something went wrong." を返すという基本的な方法で処理することができます。

より組織的で制御された方法でエラーを処理するために、講師はYelp campのアプリケーションにエラー処理システムを設定する。ユーティリティ関数用のフォルダを作り、「express error」クラスと「catch async」ラッパー関数用の2つのファイルを追加するのです。express errorクラスは、組み込みのエラークラスを拡張したもので、渡されたメッセージとステータスコードを設定するコンストラクタを備えています。catch async関数は、関数を引数として受け取り、関数を実行し、エラーをキャッチしてnextに渡すラッパーである。次に、アプリケーションの中で、すべての非同期関数をcatch async関数でラップしていきます。

最後に、Node.jsのExpressアプリケーションにエラー処理を追加することについて説明します。講師は、認識できないURLに対して基本的な404エラーを追加していますが、その後、expressエラー・クラスの使用に切り替えています。expressエラー・クラスでは、エラー・メッセージやステータス・コードをよりカスタマイズすることができます。スピーカーは、expressエラーを投げる方法と、それがコード内のエラーハンドラでどのように処理されるかを実演しています。エラーハンドラは、expressエラーで提供されたステータスコードに基づいてレスポンスステータスを設定します。ステータスコードが提供されなかった場合は、デフォルト値の500を設定します。最後に、エラーメッセージをよりきれいに見せるためのエラーテンプレートの作成について説明します。

次のページへ

前のページへ

まとめページへ

「超勇敢なウサギ」へ

この記事が気に入ったらサポートをしてみませんか?