What Are Cloudflare Workers?

  • Serverless runtime running on Cloudflare’s global edge network
  • No cold starts (nearly instant execution)
  • Free tier: up to 100,000 requests per day
  • Uses Web standard APIs (not Node.js)

Setup and Deploy

1. Install Wrangler

npm install -g wrangler
wrangler --version

2. Log in to Cloudflare

wrangler login

3. Create a Project

npm create cloudflare@latest my-worker
cd my-worker

4. Write the Worker (src/index.js)

export default {
  async fetch(request) {
    const url = new URL(request.url);

    if (url.pathname === '/api/hello') {
      return new Response(JSON.stringify({ message: 'Hello from Worker!' }), {
        headers: { 'Content-Type': 'application/json' },
      });
    }

    return new Response('Not Found', { status: 404 });
  },
};

5. Test Locally

wrangler dev

Open http://localhost:8787 to verify.

6. Deploy

wrangler deploy

Common Use Cases

Redirect Handling

export default {
  async fetch(request) {
    const url = new URL(request.url);
    if (url.pathname === '/old-page') {
      return Response.redirect('https://example.com/new-page', 301);
    }
    return fetch(request);
  },
};

Add CORS Headers

export default {
  async fetch(request) {
    const response = await fetch(request);
    const newHeaders = new Headers(response.headers);
    newHeaders.set('Access-Control-Allow-Origin', '*');
    return new Response(response.body, {
      status: response.status,
      headers: newHeaders,
    });
  },
};

Common Pitfalls

  • Workers use Web standard APIs, not Node.js built-ins
  • Use wrangler dev for local testing before deploying
  • Use wrangler secret put MY_KEY to store secrets securely
  • Fiverr - Find freelance developers and tech experts