Writing and managing express routes can be tedious most times.
Express Route Manager helps you organize your routes and middlewares in a JSON file, helping you group routes out of the box. Express Route Manager is instinctively read.
const express = require('express');
const expressRouteManager = require('expressjs-route-manager')(express,option);
option | type | description |
option.routeFile | STRING (compulsory) | Path to route file |
option.controllerDirectory | STRING | Path to controllers. Defaults ./ |
option.middlewareDirectory | STRING | Path to controllers. Defaults ./ |
module.exports = {
url: {
middlewares: ['middleware1', 'middleware2']
controller: {
path: 'controller',
method: 'method'
},
verb: 'verb'
}
The above configuration would produce a url as thus:
/url
A multilevel configuration can be achieved as thus:
module.exports = {
"url1": {
middlewares: ['middleware1', 'middleware2'],
"url2": {
"url3:params": {
'url4': {
controller: {
path: 'auth',
method: 'login'
},
verb: 'post'
}
}
The above configuration would produce a url as thus:
/url/url2/url3/url4
The middleware property can be applied at any level and it takes effect from that level downwards
option | type | description |
url | STRING or Property | Url level. Takes all ExpressJs url format e.g url/:params |
middlewares | ARRAY | Array of path to middlewares. Note that this path is relative to the path set in "middlewareDirectory" in the initialization stage. |
controller | OBJECT/FUNCTION | Object configuration of the controller |
controller.path | STRING | Path to the controller file. Note that this path is relative to the path set in the initialization stage. |
controller.method | STRING | Array of path to middlewares. Note that this path is relative to the path set in "controllerDirectory" in the initialization stage. |
verb | STRING | Verb of the path. Takes all ExpressJs availble verbs. E.g "Post", "Get", "Put".etc. Defaults to "Get" |