2.2.2 • Published 7 years ago

forte-lifecycle v2.2.2

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

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.
2.2.2

7 years ago

2.2.1

7 years ago

2.2.0

7 years ago

2.1.5

8 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.0.0

8 years ago