Hapi Rx
A minimalistic wrapper for hapi.js to build servers
Usage
index.js
'use strict'
const HapiRx = require('hapi-rx');
const server$ = HapiRx({
root: './app',
});
server$.subscribe(
hapirx => console.log('Server running.'),
err => { throw err; }
)
app/routes.js
'use strict';
const Joi = require('joi');
module.exports = {
'/{id?}': {
method: 'GET',
bundle: 'root',
config: {
cache: false,
validate: {
params:{
id: Joi.string().regex(/[a-f0-9]{24}/)
}
}
}
},
'action':{
method: 'SOCKET',
bundle: 'socket'
},
}
app/bundles/root/index.js
'use strict'
module.exports = (request, reply){
let path = this.path.bundles; // Access to the server instance
if (request.params.id) return reply(`Hello ${request.params.id}`);
reply('Hello world');
}
app/bundles/socket.js
'use strict'
// Still in alpha
module.exports = (type, data){
// emited using channel: socket:test
if (type == 'test'){
// do something with data
}
}