NPM module allowing to use json objects as expressJS router. it also includes Jsonwebtoken to secure routes or to specify a particular User Role.
npm i json-express-router
Use the router.js file to define your route ,and the role authorized for access.
// router.js
const someController = require('someController');
const someMiddleware = require('someMiddleware');
const router =
[
{
path:'/login',
method:'POST',
role:[],
secure:false,
middleware:[someMiddleware],
controller: (req,res)=>{
res.status(200).json('login succesfuly')
}
},
{
path:'/hello',
method:'GET',
role:['ROLE_USER','ROLE_ADMIN'],
middleware:[],
controller:someController
}
]
module.exports = router;
-
path: the route path.
-
method: the http method.
-
role: (array of string) List of the user Role who can access to this route.
-
secure(optional): boolean use this when you do not use Role, but the route must be secured by jsonwebtoken.
-
middleware: (array of function) List of the middleware.
-
controller: controller of the route.
//app.js
const express = require('express'); const app = express(); const server = require('http').createServer(app)
const _router = require('./router') const Router = require('JSON-express-router');
// Server port let port = 3000;
// Launch server listening to request server.listen(port, function () { console.log('Server listening at port %d', port); });
Router.router(app,_router);
-
router(_app,_router): the router fonction, _app is the express app and _router is the route list.
-
verify(err,req, res, next,role): auth fonction for verify jwt, you must passed err,req,res object and the next fonction to use this fonction, role is the role of the user connected is a optional parameter but you must use it when the routes is authorized for a specific role.
-
jwToken(req,res,payload,privateKey,option): payload,privateKey,option for create the jwt, the function send automaticaly the token.