0Pricing
Edge Computing with Cloudflare Workers & Deno · レッスン

フロントエンドフレームワークの統合

WorkersをReact、Vue、Svelteなどの主要なフロントエンドフレームワークと統合し、動的なフルスタックアプリを構築します

「フロントエンドフレームワークの統合」はCoddyKit上の無料Edge Computing with Cloudflare Workers & Denoレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEdge Computing with Cloudflare Workers & Deno学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

Full-Stack Edge with Frontend Apps

Welcome to integrating frontend frameworks with Cloudflare Workers! This lesson explores how popular frameworks like React, Vue, or Svelte can work seamlessly with Workers to create dynamic, full-stack applications at the edge.

By combining them, you get the best of both worlds: a rich user interface and a super-fast, globally distributed backend.

How Frontends Talk to Workers

At its core, a frontend framework (running in the user's browser) communicates with a Cloudflare Worker using standard HTTP requests. The Worker acts as a lightweight API backend.

  • The frontend sends requests (GET, POST, etc.) to the Worker's URL.
  • The Worker processes the request and returns a response, often JSON data.
  • The frontend then updates the UI based on this data.

Worker: A Simple JSON API

Let's see a basic Worker that acts as a simple API, returning a JSON message. Your frontend application can easily fetch data from this endpoint.

Try running this example to see the Worker's response.

export default {
  async fetch(request, env, ctx) {
    const data = {
      message: "Hello from the Edge!",
      timestamp: new Date().toISOString()
    };

    return new Response(JSON.stringify(data), {
      headers: { 'Content-Type': 'application/json' }
    });
  }
}

Frontend: Making a GET Request

From your frontend app (e.g., a React component), you'd use the browser's fetch API or a library like Axios to call your Worker. Here's how it generally looks (conceptual code, not runnable on its own):

fetch('/api/hello') .then(response => response.json()) .then(data => console.log(data));

The frontend sends a GET request to the Worker, which then sends back the JSON data.

Worker: Handling POST Requests

Frontends often send data to the backend using POST requests, for example, when submitting a form or creating a new item. The Worker can read the request body to get this data.

Run this Worker and imagine your frontend sending a POST request with {"name": "Coddy"} in the body.

export default {
  async fetch(request, env, ctx) {
    if (request.method === 'POST') {
      try {
        const body = await request.json();
        const name = body.name || 'Guest';
        return new Response(JSON.stringify({ greeting: `Hello, ${name}!` }), {
          headers: { 'Content-Type': 'application/json' }
        });
      } catch (error) {
        return new Response('Invalid JSON body', { status: 400 });
      }
    }
    return new Response('Please send a POST request.', { status: 405 });
  }
}

Understanding CORS for Edge APIs

CORS (Cross-Origin Resource Sharing) is a security feature that browsers use. If your frontend (e.g., myapp.com) tries to fetch data from a Worker on a different origin (e.g., myworker.workers.dev), the browser will block it unless the Worker explicitly allows it.

You need to add specific HTTP headers to your Worker's responses to enable CORS.

Implementing Basic CORS in a Worker

To allow your frontend to communicate with your Worker, include CORS headers in your Worker's responses. The Access-Control-Allow-Origin header is crucial.

This example shows how to add basic CORS headers, allowing requests from any origin (*). For production, specify your frontend's exact domain.

export default {
  async fetch(request, env, ctx) {
    const headers = {
      'Content-Type': 'application/json',
      'Access-Control-Allow-Origin': '*', // Allow requests from any origin
      'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
      'Access-Control-Allow-Headers': 'Content-Type'
    };

    if (request.method === 'OPTIONS') {
      // Handle preflight requests for CORS
      return new Response(null, { headers });
    }

    const data = { message: 'CORS enabled response!' };
    return new Response(JSON.stringify(data), { headers });
  }
}

Environment Variables & Secrets

Your Workers might need access to API keys or other sensitive configuration. Use environment variables (often called 'bindings' in Workers) to securely provide these.

Never embed secrets directly in your code or expose them to the frontend. Workers can access these securely at runtime, acting as a proxy for sensitive operations.

  • Define variables in wrangler.toml.
  • Access them via the env object in your Worker.

Best Practices for Integration

To build robust full-stack edge applications, consider these best practices:

  • API Versioning: Use paths like /api/v1/users for easier updates.
  • Clear Endpoint Naming: Make your Worker routes intuitive (e.g., /products, /orders).
  • Error Handling: Return meaningful HTTP status codes (400, 401, 404, 500) and JSON error messages from your Worker.
  • Authentication: Workers can handle authentication tokens (JWTs) and manage user sessions for your frontend.

Quick Check: Worker Integration

When integrating a frontend framework with a Cloudflare Worker, what is the primary mechanism for the frontend to retrieve dynamic data from the Worker?

Recap: Full-Stack Edge Integration

In this lesson, we explored how to integrate frontend frameworks with Cloudflare Workers. We learned that Workers act as powerful, globally distributed API backends that your frontend apps can communicate with via standard HTTP requests.

Key takeaways:

  • Workers serve JSON data and handle various request methods.
  • CORS headers are essential for cross-origin communication.
  • Best practices include clear API design and secure secret management.

This integration allows you to build fast, scalable full-stack applications at the edge!

よくある質問

「フロントエンドフレームワークの統合」レッスンは無料ですか?

はい。「フロントエンドフレームワークの統合」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Edge Computing with Cloudflare Workers & Denoコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。

「フロントエンドフレームワークの統合」で何を学びますか?

WorkersをReact、Vue、Svelteなどの主要なフロントエンドフレームワークと統合し、動的なフルスタックアプリを構築します ブラウザで直接実行するハンズオンコードでEdge Computing with Cloudflare Workers & Denoを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Edge Computing with Cloudflare Workers & Denoを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのEdge Computing with Cloudflare Workers & Denoは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「フロントエンドフレームワークの統合」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このEdge Computing with Cloudflare Workers & Denoレッスンでコードを書いて実行できますか?

はい。すべてのEdge Computing with Cloudflare Workers & Denoレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Workers SitesとPages
  2. フロントエンドフレームワークの統合
  3. Denoによるデータベースプロキシ
  4. エッジでのサーバーサイドレンダリング
← Edge Computing with Cloudflare Workers & Denoに戻る