houkou

Teeny tiny router for node and the browser

Usage no npm install needed!

<script type="module">
  import houkou from 'https://cdn.skypack.dev/houkou';
</script>

README

Houkou

Teeny tiny router for node and the browser

Overview

Houkou is a very simple (but surprisingly featureful) router written in JavaScript, targeted towards both Node.JS and the browser. It has no external dependencies and currently weighs in at just over a kilobyte uncompressed.

Features

  1. Simple, clear syntax
  2. Named route parameters
  3. Custom parameter regexes
  4. Reverse routing (generate urls from routes)
  5. Fully tested (check test directory)

Users

  • wham - "whimsical web framework"
  • contact me to get your package listed!

Documentation

There's not much to be documented, fortunately! The example below should cover just about everything (seriously). There's some tests in the test directory as well if you want some more examples.

Example Usage

Code:

var Houkou = require("houkou");

// create a new route
var route = new Houkou("/post/:id/:title", {requirements: {id: "[0-9]+"}});

// parse a url according to our route definition
var params = route.match("/post/123/this-is-an-example-post");

// print it out all pretty-like
console.log("Parsed:");
console.log(params);
console.log("");

// construct a url using our route as a template, filling in the variables with
// those supplied
var url = route.build(params);

// dump!
console.log("Generated:");
console.log(url);
console.log("");

Output:

Parsed:
{ id: '123', title: 'this-is-an-example-post' }

Generated:
/post/123/this-is-an-example-post

License

3-clause BSD. A copy is included with the source.

Contact