38
loading...
This website collects cookies to deliver better user experience
var express = require('express');
var router = express.Router();
const authorizationMiddleware = require("../authorizationMiddleware")
const payloadValidationMiddleware = require("../payloadValidationMiddleware")
const createAction = require("createAction")
const serviceRequest = require("serviceRequest")
/* POST request to filter users listing. */
router.post('/', authorizationMiddleware, payloadValidationMiddleware, async function(req, res, next) {
//Some code
const action = createAction(req);
const response = await serviceRequest(action);
//Some code to modify the response
res.send(response);
});
module.exports = router;
createAction
and serviceRequest
also be middlewares?// router.js
const express = require("express");
const createRouteConfig = ({
path,// /filter or /filter/:paramOne/:paramTwo etc.
method, //"GET"
middlewares, // an array of route middlewares [middleware1, middleware2, ..., middlewareN],
controller, // the final request handler
}) => {
const router = express.Router()
if (middlewares.length) {
router.route(path)[method.toLowerCase()](...middlewares, controller);
} else {
router.route(path)[method.toLowerCase()](controller);
}
return router;
};
module.exports = createRouteConfig;
//User Route
const createRouteConfig = require("../router");
const authMiddleware = require("../authMiddleware")
const validateMiddleware = require("../validateMiddleware")
const actionMiddleware = require("actionMiddleware")
const serviceMiddleware= require("serviceMiddleware")
const userController = (req, res, next) => {
res.send({});
};
const route = createRouteConfig({
path: "/",
middlewares: [authMiddleware, validateMiddleware, actionMiddleware, serviceMiddleware],
method: "post",
controller: userController,
});
//Finally set the route to the app
app.use("/users", route); // here app is the express app.
res.locals
object. In one middleware, you setconst authMiddleware = (req, res, next) => {
// your logic
res.locals.authenticated = true;
next();
}
const validateMiddleware = (req, res, next) => {
const {authenticated} = res.locals;
if(authenticated){
// your business logic
next();
} else {
// throw error, or respond with 401
}
}