server-base-router

server base router

Usage no npm install needed!

<script type="module">
  import serverBaseRouter from 'https://cdn.skypack.dev/server-base-router';
</script>

README

server base router

The router used by server-base

js-standard-style build status downloads

usage

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(params.name),
  '/get/.*': {
    get (req, res, params, splat) {
      res.json([params, splat])
    }
  },
  '/echo-gen': {
    * post (req, res) {
      const json = yield req.json()
      res.json(json)
    }
  },
  '/echo-sync': {
    async post (req, res) {
      const json = await req.json()
      res.json(json)
    }
  }
})
const server = http.createServer(routes)
server.listen(1234)

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

process.env.MIME_TYPES_PATH

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) => {
  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

install

With npm do:

npm install server-base-router

license

Apache License, Version 2.0