Fortune HTTP
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
Usage
Consult the source code or the documentation website for more information.
const http = require('http')
const fortuneHTTP = require('fortune-http')
const listener = fortuneHTTP(fortuneInstance, options)
const server = http.createServer((request, response) =>
listener(request, response)
.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)
app.use((request, response) =>
listener(request, response)
.catch(error => { ... }))
Customization
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.
Demo
By installing the development dependencies, one can run the test instance locally:
$ npm i && npm run demo
License
This software is licensed under the MIT license.