Giter Site home page Giter Site logo

fortune-http's Introduction

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

Usage

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 => { ... }))

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.

fortune-http's People

Contributors

ctcpip avatar gr0uch avatar itsluke avatar jamesplease avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.