error()とredirect()ヘルパー
load関数やアクションから、型付きエラーとリダイレクトをスローします。
「error()とredirect()ヘルパー」はCoddyKit上の無料Sveltejs Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSveltejs Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Sveltejs Academyコースには全4レッスンが含まれています。
組み込みヘルパーは2つ
@sveltejs/kitのerror()とredirect()は、ユーザー向けの主な2種類の処理分岐を扱います。
error ヘルパー
ステータスとメッセージを持つ構造化エラーをスローします。
import { error } from "@sveltejs/kit";
error(404, "Not found");redirect ヘルパー
3xxステータスでユーザーを別のURLへ移動させます。
import { redirect } from "@sveltejs/kit";
redirect(303, "/login");リダイレクトのステータスコード
恒久的な移動には301、一時的な移動には302、「他を参照」(POSTの後によく使用)には303、メソッドを維持する場合は307または308を使用します。
load で使用する
レンダリング前にリダイレクトするため、load内で呼び出します。
if (!session) redirect(303, "/login");actions で使用する
フォームアクションでは、処理が成功した後にリダイレクトできます。
スローされるパターン
どちらのヘルパーも例外をスローするため、その後のコードには到達しません。TypeScriptは正しく型を絞り込めます。
捕捉しない
これらをtry/catchで囲まず、SvelteKitに処理させてください。
ステータス401と403の違い
認証されていない場合は401、認証済みだが許可されていない場合は403を使用します。
URLと組み合わせる
安全にエンコードできるよう、URLの構築にはURLコンストラクターを使用します。
redirect(303, `/login?next=${encodeURIComponent(url.pathname)}`);実際の利用例
認証フロー、廃止されたURLからのリダイレクト、存在しないリソースの処理などに使用します。
確認問題
returnではなくredirect()を使用するのはなぜですか?
まとめ
失敗にはerror()を、ナビゲーションにはredirect()を使用します。どちらも例外をスローして、後続のコードを停止させます。
よくある質問
「error()とredirect()ヘルパー」レッスンは無料ですか?
はい。「error()とredirect()ヘルパー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Sveltejs Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Sveltejs Academyコースには全4レッスンが含まれています。
「error()とredirect()ヘルパー」で何を学びますか?
load関数やアクションから、型付きエラーとリダイレクトをスローします。 ブラウザで直接実行するハンズオンコードでSveltejs Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Sveltejs Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSveltejs Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「error()とredirect()ヘルパー」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSveltejs Academyレッスンでコードを書いて実行できますか?
はい。すべてのSveltejs Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- カスタムエラーページの+error.svelte
- 想定内エラーと想定外エラー
- error()とredirect()ヘルパー
- ネストしたレイアウトのエラーページ