This is a HTTP implementation for Fortune.js, which includes default serializers for JSON, HTML, form encoded and form data. This module is required for other HTTP serializers.
$ npm install fortune-http --save
Consult the source code or the documentation website for more information.
// Use the Node.js core HTTP implementation.
const http = require('http')
// The alternative `uWS.http` implementation may be supported:
// const http = require('uws').http
const fortuneHTTP = require('fortune-http')
// Pass in a Fortune instance and an optional options object.
const listener = fortuneHTTP(fortuneInstance, options)
const server = http.createServer((request, response) =>
listener(request, response)
// Make sure to catch Promise rejections.
.catch(error => {
console.error(error.stack)
}))
For use with middleware frameworks such as Express:
const express = require('express')
const fortuneHTTP = require('fortune-http')
const app = express()
const listener = fortuneHTTP(fortuneInstance, options)
// Make sure that the Fortune listener is last in the middleware stack,
// since it ends the response by default (this can be optionally disabled).
app.use((request, response) =>
listener(request, response)
.catch(error => { ... }))
The HTML serializer has some customization options.
prefix
: a prefix to add to every route. Default:""
(empty string).indexRoute
: path to the index route. Default:""
(empty string).injectHTML
: passing this option as a String to the HTML serializer will include it in the response.
On record type field definitions:
inputOnly
: on a record field definition, setting this property to true will mark it as an input only field. Combined with making the field non-enumerable, virtual inputs can be defined.outputOnly
: on a record field definition, setting this property to true will hide it from input.
The form serializers interpret a few special fields.
- All payloads must include cookie values, prefixed with
CSRF_
to prevent Cross-Site Request Forgery attacks. - The special field
__method__
may be used to override the method, which may be valued by any method that Fortune.js accepts.
By installing the development dependencies, one can run the test instance locally:
$ npm i && npm run demo
This software is licensed under the MIT license.