サーバーサイド処理

SvelteKitのサーバーサイド処理の全体像を理解し、適切なファイルタイプと実装パターンを選択する方法を学びます。

SvelteKitのサーバーサイドアーキテクチャ

SvelteKitは、Node.jsベースのサーバーサイド処理を提供し、以下の機能を実現します。

  • SSR(Server-Side Rendering): SEOとパフォーマンスの最適化
  • データプリフェッチング: 高速なページ遷移
  • セキュアな処理: 機密情報の保護、認証処理
  • API開発: RESTful APIエンドポイントの構築

サーバーサイドファイルの種類と役割

SvelteKitでは、ファイル名の命名規則によってサーバーサイドで実行されるコードを明確に分離できます。

ダイアグラムを読み込み中...
ファイルタイプ実行タイミング主な用途
+page.server.tsページのSSR時ページ固有のデータ取得、Form Actions
+layout.server.tsレイアウトのSSR時共通データ取得、認証チェック
+server.tsAPIリクエスト時RESTful APIエンドポイント
hooks.server.tsすべてのリクエスト認証、ログ、エラー処理、CORS
ファイル選択のガイドライン
  • ページデータが必要+page.server.ts
  • 複数ページで共通のデータ+layout.server.ts
  • JSON APIが必要+server.ts
  • すべてのリクエストで実行hooks.server.ts

リクエスト処理フロー

以下の図は、クライアントからのリクエストがどのように処理されるかを示しています。

ダイアグラムを読み込み中...

セキュリティモデル

SvelteKitのサーバーサイド処理は、機密情報を安全に扱うための明確な境界を提供します。

ダイアグラムを読み込み中...

クライアントサイドとサーバーサイドの区別

実行場所アクセス可能な情報ファイルタイプ
サーバーのみ環境変数、データベース、APIキー*.server.ts$lib/server/
両方公開情報、公開API URL*.ts*.svelte
重要なセキュリティ原則
  • 機密情報(APIキー、DBパスワード等)は*.server.tsまたは$lib/server/に配置
  • 環境変数$env/static/privateを使用(process.envも可)
  • クライアントに送信するデータは必要最小限に絞る

実装パターンへのリンク

SvelteKitのサーバーサイド機能は、用途に応じて以下のトピックに分かれています。詳細は各ページを参照してください。

📊 データ取得

Load関数を使用したデータフェッチングパターンを学びます。

📝 フォーム処理

Progressive Enhancementなフォーム実装とバリデーション。

Form Actions、バリデーション、ファイルアップロード

🔌 API開発

RESTful APIエンドポイントの構築とセキュリティ対策。

APIエンドポイント、認証、CORS、レート制限

⚡ リアルタイム通信

WebSocketとServer-Sent Eventsを使用したリアルタイム機能。

チャット、通知、ライブフィード

🎣 横断的関心事

すべてのリクエストに対する共通処理。

handle、handleFetch、handleError

🛠️ アプリケーション開発

実践的なアプリケーション開発のベストプラクティス。

🔐 実装例

実践的な認証実装のサンプルコードとチュートリアル。

アーキテクチャの詳細

SvelteKitの内部動作やレンダリングパイプラインについて深く理解したい場合は、以下のページを参照してください。

まとめ

SvelteKitのサーバーサイド処理は、以下の原則に基づいて設計されています。

  1. 明確な境界 - ファイル名規則による実行環境の区別
  2. セキュリティファースト - 機密情報の安全な取り扱い
  3. 柔軟性 - SSR、API、リアルタイム通信など多様なユースケースに対応
  4. 型安全性 - TypeScriptとの完全な統合

各実装パターンの詳細は、上記リンクから該当ページを参照してください。

Last update at: 2025/10/01 05:30:17