qrouter

5.1.1 • Public • Published

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

NPM

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
});

Package Sidebar

Install

npm i qrouter

Weekly Downloads

6

Version

5.1.1

License

none

Last publish

Collaborators

  • git-jiby-me