Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A Node.js reference implementation of a middleware for loading and rendering Apps
CSS CoffeeScript JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
builder
client
example
.gitignore
Procfile
README.md
builder.coffee
index.js
middleware.coffee
package.json
pear.png

README.md

Apps/A Middleware (Node.js)

Codename "Pear"

image

A Node.js reference implementation of a middleware for loading and rendering Apps.

Quickstart

$ npm install
$ PORT=1234 node example/index.js

And then visit 127.0.0.1:1234.

Connect Middleware

#!/usr/bin/env coffee
http    = require 'http'
connect = require 'connect'

middleware = require '../middleware.coffee'

app = connect()
.use(middleware
    'apps': [
        'git://github.com/intermine/intermine-apps-a.git'
    ]
    'config': __dirname + '/config.json'
)
.use(connect.static(__dirname + '/public'))

http.createServer(app).listen process.env.PORT

The middleware accepts two params. One, apps, is an Array of paths to app sources. This can be any of the following:

  1. Git paths on the net like: git://github.com/intermine/intermine-apps-a.git
  2. Local file paths: file:///home/dev/intermine-apps-a

The other parameter, config, represents the configuration you want merged with the config from the apps sources. This can be one of the following:

  1. Local file path: file:///home/dev/example-middleware/config.json
  2. A plain JS Object.

Only the first parameter is required.

Then, the middleware provides you with two routes:

  1. GET /middleware/apps/a - which gives you a config for all the apps it can serve
  2. GET /middleware/apps/a/:appId - which returns one app

Both URLs are being used internally by the Apps client (see example/public/js/intermine.fatapps.js).

Something went wrong with that request. Please try again.