spirit-router

0.5.0 • Public • Published

spirit-router

A router for spirit.

When combined with spirit, it provides a low level extensible framework (it is not a full stack batteries included framework or a boilerplate). It is meant as an alternative to Express, Koa, and Hapi.

Build Status Coverage Status Join the chat at https://gitter.im/spirit-js/spirit

It emphasizes clear separation of code between HTTP and your own code. Routes are normal javascript functions. That means a route can be as simple as:

function() { return "Hello World" }

This makes testing, re-using, and reading your code much easier, as "it's just javascript".

Features

  • Routes are just normal functions that return something. No more proprietary (req, res, next) functions. This makes it easier to test, re-use, read your routes.

  • Compatible with most Express middleware. (via spirit-express) Re-using existing code is important.

  • Error handling with then & catch. Promises are "first class". And so async/await compatible.

  • Fast, fast!. It outperforms other web frameworks (Express, Koa, Hapi). Article showing the performance difference.

Example

const {adapter} = require("spirit").node
const route = require("spirit-router")
const http = require("http")
 
const greet = (name) => {
  return "Hello, " + name
}
 
const app = route.define([
  route.get("/:name", ["name"], greet)
])
 
http.createServer(adapter(app)).listen(3000)

More examples in can be found here.

Getting Started

To install: npm install spirit spirit-router

Resources for getting started:

There are a set of videos that quickly go over different topics in spirit.

Contributing

All contributions are appreciated and welcomed.

For backwards incompatible changes, or large changes, it would be best if you opened an issue before hand to outline your plans (to avoid conflict later on).

The code style omits ending semi-colons. It also does not use camel case. And one-liners should be avoided unless it's very clear.

To run tests, use make test. This will also build changes to src/*, if you do not have "make" installed, you can look at the Makefile to see the steps to accomplish the task.

Dependents (1)

Package Sidebar

Install

npm i spirit-router

Weekly Downloads

10

Version

0.5.0

License

ISC

Last publish

Collaborators

  • hnry