Server middleware for falcor-hapi
Working usage example in falcor-hapi-demo repo
Minimalistic example
var FalcorServer = require('falcor-hapi');
var Hapi = require('hapi');
var TestRouter = <your router here>;
var app = new Hapi.Server();
app.connection({
host: "localhost",
port: 9090
});
app.route({
method: ['GET', 'POST'],
path: '/model.json',
handler: FalcorServer.dataSourceRoute(function(req, res) {
return new TestRouter();
})
});
app.start();
You can also register this module as an Hapi Plugin and use its provided Falcor handler.
this.req
and this.reply
.Alternately, you can provide your own Router class and the handler will mixin the logic to cache your routes and the base Falcor router class.
var Hapi = require('hapi');
var app = new Hapi.Server();
app.connection({
host: "localhost",
port: 9090
});
app.register(require('falcor-hapi'), function (err) {
if (err) {
console.error('Failed to load plugin:', err);
}
app.route({
method: ['GET', 'POST'],
path: '/model.json',
handler: {
falcor: {
routes: routes, // Your routes
cacheRoutes: true, // Whether to cache your routes, default to true
options: {debug: true}, // Option to give to Falcor router
initialize: function() { // Optional initialize method
this.foo = this.req.payload.meaningoflife || 42;
},
routerClass: MyRouterClass // Optional routerClass to use
}
}
});
app.start();
});
Please run linting before pushing on repo
npm run lint