1.2.28 • Public • Published

Fortune HTTP

Build Status npm Version License

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

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.



Package Sidebar


npm i fortune-http

Weekly Downloads






Unpacked Size

134 kB

Total Files


Last publish


  • daliwali
  • ctcpip