brick-router
v2.1.3
Published
Modular router for serving static assets
Downloads
19
Readme
brick-router
Static asset server that can write to files.
Installation
$ npm install brick-router
Usage
const brick = require('brick-router')
const fs = require('fs')
const router = brick()
router.on('/index.html', cb => {
const rs = fs.createReadStream('index.html')
cb(null, rs)
})
// use as router
router.match('/index.html', (err, res) => {
if (err) throw err
res.pipe(process.stdout)
})
// write to file
router.build(__dirname + '/my-dirname')
Why?
In development an application usually goes through 3 stages:
- experiment - some html, css, js to toy around locally
- static - static files, usually hosted on GitHub pages
- server - application with a working backend
When switching stages it's common to throw out your build process, and start
from scratch. brick-router
allows you to keep the same build process by
serving files both in-memory (for experimentation and servers) and being able
to write to the filesystem (for static pages).
API
router = brick()
Create a new router.
router.on(filename, cb(err, data|stream))
Register a new path in the router. The callback either accepts data or a ReadableStream.
router.match(filename, cb(err, res))
Match a path on the router, pass in an optional callback to the router which can later be called.
router.build(directory, cb(err, res))
Execute all routes and write the output to a directory tree so it can be served statically. Calls an optional callback on completion.
See Also
- wayfarer - composable trie based router
- chokidar - wrapper around node.js fs.watch / fs.watchFile
- brick-server - HTTP frontend