node package manager
Stop writing boring code. Discover, share, and reuse within your team. Create a free org »


server base router

The router used by server-base

js-standard-style build status downloads


const http = require('http')
const router = require('server-base/router')
const routes = router({
  '@setup': (ctx) => { /* see below for context methods */ },
  '/url/:name': (req, res, params) => res.text(,
  '/get/.*': {
    get (req, res, params, splat) {
      res.json([params, splat])
  '/echo-gen': {
    * post (req, res) {
      const json = yield req.json()
  '/echo-sync': {
    async post (req, res) {
      const json = await req.json()
const server = http.createServer(routes)

routes are defined using http-hash

mime types / content-type using mime

The url extensions is used to determine the mime type used in the response.

process.env.MIME_TYPES (string)

Defines extra types using mime


Defines extra types using mime

@setup context methods

createLog is server-base-log module for service

log is an instance of server-base-log using name provided

mime is mime module

use add middleware function or array of functions

context.use((q, r, next) => {

request helper methods

req.json handle application/json data

const json = await req.json()

req.form handle application/x-www-form-urlencoded data

const form = await req.form()

response helper methods

res.notFound built in function setting 404

res.error(error) built in helper function for responding with errors

res.setNextErrorMessage(err, code) set next error returned to user

res.setNextErrorCode(code) set next error code returned to user


With npm do:

npm install server-base-router