qrouter
v5.1.1
Published
Qumram express router that handles websockets and REST
Downloads
6
Maintainers
Readme
Qrouter
Router middleware for express
- Provides functionalities provides by default express router
- Adds web socket support for your REST endpoints with no additional code
- Automatic registration of endpoints
Installation
Install using npm:
npm install qrouter
##Usage
Initialising middleware
app.use(router.middleware({
handler: app,
routes:'app/components/api',
paramAware: true,
paramPrefix: 'tenant'
}));
- handler : the express application
- routes : folder to find the router controllers
- paramAware : define if service is param aware (tenant, language etc) or not (optional field), by default param unaware
- paramPrefix : the parameter name to use for the param awarenesses passed in api urls.
Router Controller Structure
var QmrmRouter = require('qrouter'); // include package
var PARAM_UNAWARE = false;
var router = new QmrmRouter({ // create router
rest: '/prefix', // REST endpoint prefix (all route will be prefixed with it)
socket: {
req: 'prefix.req' // socket request message prefix (all socket request message will be prefixed with it)
resp: 'prefix.resp' // socket response message prefix (all socket response message will be prefixed with it)
}
});
router.options(PARAM_UNAWARE, '/', cors());
router.get(PARAM_UNAWARE, 'status.get', 'status.resp', '/', cors(), function (req, res) {
// param unaware endpoint in param aware application
// first parameter defines it is param unaware (optional argument)
// second parameter is socket request message
// third parameter is socket response message
// fourth paramter is route
// can have any number of express middlewares after this
});
router.get('status.get', 'status.resp', '/', cors(), function (req, res) {
// param aware endpoint in param aware application
});