forte-lifecycle

2.2.2 • Public • Published

forte-lifecycle Travis npm package

Forte Lifecycle is expressjs middleware that provides lifecycle magic to your Forte experience apps.

Features

  • Automatic Organization Resolver and Cache
    The first request processed will cause a forte-api call to be made that fills the organization cache. A request.organization prop will also be available for use in other areas of your express server.
  • Automatic server.renderTime metric tracking
    All requests are timed and logged via node-statsd

Install

$ npm i -S forte-lifecycle

Documentation

Quick Start

var express = require('express')
var forteApi = require('forte-api')
var lifecycle = require('forte-lifecycle')
 
var app = express()
 
var api = forteApi({...})
 
// register the middleware
// be sure to register the middleware before any routes that require trunk/branch scope info
app.use(lifecycle(api)) 
 
// now, all requests will have a request.lifecycle property
// and log server.renderTime using node-statsd
app.get('/', function (req, res) {
  res.send('Hello ' + req.lifecycle.scope.trunk '!');
});
 
app.listen(3000, function () {  
  console.log('Forte Experience app listening on port 3000!');
})

API

Constructor

ForteLifecycle(apiClient, [options])

Creates an instance of the Forte Lifecycle middleware.

  • apiClient:
    A forte-api client instance or an object that conforms to the following interface can also be supplied:
    • organizations.getOne(filter): {organization}
      Returns a promise that returns a single organization. filter is an object map of props to filter by e.x.: { hostname: '...'}.
    • organizations.getMany(filter): [{organization}, ...]
      Returns a promise that returns all organizations. filter is an object map of props to filter by e.x.: { parentID: '...'}.
  • options:
    • cacheDuration:
      The duration in milliseconds or string in ms format to cache organizations lookups.
      default: '15m'
    • stats:
      An optional configuration object for node-statsd.
      default: node-statsd defaults see node-statsd usage

Request Properties

The lifecycle middleware adds the following properties to the request for use in subsequent middleware/handlers:

request.lifecycle.scope: {object}

  • hostname: {string} The hostname of the request derived from request.headers.host.
  • trunk: {string}
    The trunk organization ID for the request.
  • branch: {string}
    The branch organization ID for the request.

Readme

Keywords

Package Sidebar

Install

npm i forte-lifecycle

Weekly Downloads

1

Version

2.2.2

License

MIT

Last publish

Collaborators

  • aarongreenlee
  • peterquintas
  • mvandiest