3h-router

A simple router.

Usage no npm install needed!

<script type="module">
  import hRouter from 'https://cdn.skypack.dev/3h-router';
</script>

README

3h-router

A simple router lib.

Features

  • Gzip/Deflate support
  • Main router and sub-routers

Example

main router


const Router = require('3h-router'),
    router = new Router({ basePath: __dirname });

// You can get default values via Router.defaultOptions.
router.defaultPages.unshift('my-default-page.html');
router.subRouters.unshift('my-sub-router.js');

router.on('before', url => {
    console.log(`[before] ${url}`);
    // If there's any `before` event handler, then
    // the routing will pause here, so remember to
    // call router.route to continue the routing.
    // In addition, if you want to forward the
    // request, then just pass the target url.
    router.route(url);
}).on('result', result => {
    console.log(`[result] ${result.code}`);
}).on('error', err => {
    console.log('An error occurred!');
    console.error(err);
}).start(88);

console.log('Server started on port 88!');

sub-router


module.exports = router => {
    const { response } = router;
    response.writeHead(200, {
        'Content-Type': 'text/html'
    });
    response.end('<h1>Generated by sub-router!</h1>');
};

APIs

Just read the declaration files in typings to learn the APIs.