Lighter-than-air node.js server framework.
The main goal of paperplane
is to make building a node.js
server easy, without all of the configuration or imperative boilerplate required for other server frameworks. If you prefer to build apps with function composition or even a point-free style, then paperplane
is for you.
With paperplane
you get all of these out-of-the-box:
Let's try a quick Hello World example server. It accepts a :name
param in the url, and then includes that name in the json
response body.
const { compose } = require('ramda')
const http = require('http')
const { json, logger, methods, mount, routes } = require('paperplane')
const hello = req => ({
message: `Hello ${req.params.name}!`
})
const app = routes({
'/hello/:name': methods({
GET: compose(json, hello)
})
})
http.createServer(mount({ app })).listen(3000, logger)
So simple and functional, with an easily readable routing table and pure functions for the route handler. If that sounds like fun to you, then read the Getting started guide or the API docs to learn more.
To help you learn the concepts used in paperplane, check out the demo application.
If you have docker installed, you can run the demo locally:
cp docker-compose.override.windows.yml docker-compose.override.yml
docker-compose up