kraken
- Returns an application instance.
app
config
onconfig
use
listen
close
listening
error
close
disconnecting
middleware:*
'use strict'; | |
var kraken = require('kraken-js'), | |
otherapp = require('./lib/otherapp'); | |
var delegate, myapp; | |
delegate = { /* delegate ... */ }; | |
/** | |
* First example drops `create` method, making the `kraken` object a factory | |
* as an implicit `create`. The provided name is used elsewhere to fetch the | |
* application instance containing references to the express app and config. | |
*/ | |
myapp = kraken('myapp1'); | |
myapp.use('/', delegate); | |
myapp.use('/foo', otherapp); | |
myapp.listen(function (err, server) { | |
err && throw err; | |
}); | |
// -or- | |
/** | |
* Second example continues to use `create`, but REQUIRES it to construct | |
* a valid `myapp` and register it in the global kraken cache. | |
*/ | |
myapp = kraken('myapp2').create('/', delegate); | |
myapp.use('/foo', otherapp); | |
myapp.listen(function (err, server) { | |
err && throw err; | |
}); | |
// -or- | |
/** | |
* Third example changes the `create` API to only accept a name, making `use` | |
* exclusively for mounting express apps and delegates | |
*/ | |
myapp = kraken.create('myapp3'); | |
myapp.use('/', delegate); | |
myapp.use('/foo', otherapp); | |
myapp.listen(function (err, server) { | |
err && throw err; | |
}); | |
/** | |
* No name is an implicit global instance, which could be referenced | |
* via just invoking kraken again: | |
* var myapp = kraken(); | |
* | |
* PS: This part feels dirty | |
*/ | |
myapp = kraken().create('/', delegate); | |
myapp.listen(function (err, server) { | |
err && throw err; | |
}); |
'use strict'; | |
var kraken = require('kraken-js'), | |
myapp = kraken('myapp1'); | |
/** | |
* Once an application has been created it can be fetched from the | |
* global kraken instance, along with references to express app and config. | |
*/ | |
app = myapp.app; | |
config = myapp.config; | |
module.exports = function () { | |
config.get('some:setting'); | |
}; |
'use strict'; | |
var kraken = require('kraken-js'), | |
otherapp = require('./lib/otherapp'); | |
/** | |
* config method implementation for hooking in to async config. | |
* Assigned to the app instance below. | |
*/ | |
function doconfig(config, callback) { | |
// stuff... | |
callback(null, config); | |
} | |
var myapp = kraken('myapp', /* '/baseroute'? */); | |
myapp.on('listening', function (server) { | |
console.log('listening on ', server.address().port); | |
}); | |
myapp.on('error', function (err) { | |
console.error(err); | |
}); | |
myapp.on('close', function (server) { | |
console.log('closed'); | |
process.exit(0); | |
}); | |
myapp.on('middleware:before:session', function (eventargs) { | |
eventargs.app.use(function logpath(req, res, next) { | |
console.log(req.path); | |
next(); | |
}); | |
}); | |
myapp.onconfig = doconfig; | |
myapp.use('/foo', otherapp); | |
myapp.listen(function (server) { | |
// Implementation detail: This behavior would be moved internally and | |
// hooked up with shutdown middleware. | |
process.on('SIGINT', function () { | |
myapp.emit('disconnecting', server); | |
myapp.close(); | |
}); | |
}); |
'use strict'; | |
var kraken = require('kraken-js'); | |
kraken('myapp').listen(); |
'use strict'; | |
var express = require('express'), | |
kraken = require('kraken'); | |
var app = express(); | |
app.use(kraken()); | |
app.listen(); |