Simple Cloudflare Worker with built-in Routing

recipe-exchange

#1

A simple Cloudflare Worker with built-in routing

Here’s a simple CloudFlare Worker with a built-in router that allows you to separate your worker logic into different functions and/or “controllers” so you can achieve a clean separation of concerns while working within the 1 script limit for non-Enterprise plans.

Sample route definitions:

router.get('/cloudflare', SampleController.index);
router.post('/cloudflare', SampleController.store);
router.get('/cloudflare/:id', SampleController.show);
router.put('/cloudflare/:id', SampleController.update);
router.delete('/cloudflare/:id', SampleController.destroy);
router.get('/cloudflare/routes/:id', (req) => {
    return response('Response from closure instead of controller: id=' + req.params.id);
});

See the GitHub repo here: https://github.com/anderly/cloudflare-worker-routing

Credits to @detroitenglish and his Password pwnage CloudFlare Worker for the auto-deploy script and webpack config.


Quick Start

  1. Rename example.cloudflare.env to cloudflare.env and edit the values as needed.
  2. Update the index.js file with your routes, use function closures or separate controller files and go to town with a simple CloudFlare Worker with built-in routing!
  3. Install deps with npm install
  4. Launch :rocket: with npm run deploy

Try it live

Try out the following routes from the sample repo live here:


#2

This is an awesome boilerplate, thanks a lot for sharing!


#3

Thanks! Hope you find it useful!