Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Express Controller Middleware

This is a middleware to load all controllers.

NOTE: this is a deprecated system. You can use this express-common-router to instead.

Installation

$ npm install express-controller-middleware

Usage

First step:

Create two controllers:

  • HelloController.js
module.exports=function(req,res,next){res.send("Hello Controller");};
  • TestController.js
exports.index=function(req,res){res.send("Hello Index");};exports.show=function(req,res){res.send("Hello Show");}

Second step:

Create a middleware.

  • controller-middleware.js
constpath=require('path');constExpressControllerMiddleware=require('express-controller-middleware');constcontrollerPath=path.join(__dirname,'./controllers');constmiddleware=newExpressControllerMiddleware(controllerPath);middleware.use('/hello','HelloController');//Must use the same name with file name.middleware.get('/test/index','TestController#index');//Controller name and action name separated by '#'middleware.get('/test/index','TestController#index');//More method please refer to 'express'module.exports=middleware;

Third step:

Using middleware in server.js

constexpress=require('express');constcontrollerMiddleware=require('./js/controller-middleware');constapp=express();app.use(controllerMiddleware);app.listen(3000,'0.0.0.0',(err)=>{if(err){console.log(err);return;}});

More Details

Set controller path

There are two ways to set controller path.

  • Pass the controller path as a parameter into constructor method.
constcontrollerPath=path.join(__dirname,'./controllers');constmiddleware=newExpressControllerMiddleware(controllerPath);
  • Calling setPath method for ExpressControllerMiddleware class.
constmiddleware=newExpressControllerMiddleware();middleware.setPath(path.join(__dirname,'./controllers'));

Set custom FileLoader.

  • Create a custom FileLoader like this:
functionCustomFileLoader(){}// Must have this method.CustomFileLoader.prototype.loadControllerFiles=function(controllerPath){
...
}module.exports=CustomFileLoader;
  • Config CustomFileLoader into middleware config file.
constExpressControllerMiddleware=require('express-controller-middleware');constCustomFileLoader=require('./CustomFileLoader');constmiddleware=newExpressControllerMiddleware();middleware.setFileLoader(newCustomFileLoader());

Set custom ControllerLoader.

  • Create a custom ControllerLoader like this:
functionCustomControllerLoader(){}// Must have this method.CustomControllerLoader.prototype.loadController=function(controllerFile){
...
}module.exports=CustomControllerLoader;
  • Config CustomControllerLoader into middleware config file.
constExpressControllerMiddleware=require('express-controller-middleware');constCustomControllerLoader=require('./CustomControllerLoader');constmiddleware=newExpressControllerMiddleware();middleware.setControllerLoader(newCustomControllerLoader());

Set custom ActionLoader.

  • Create a custom ActionLoader like this:
functionCustomActionLoader(){}// Must have this method.CustomActionLoader.prototype.loadAction=function(controller,actionName){
...
}module.exports=CustomActionLoader;
  • Config CustomActionLoader into middleware.
constExpressControllerMiddleware=require('express-controller-middleware');constCustomActionLoader=require('./CustomActionLoader');constmiddleware=newExpressControllerMiddleware();middleware.setActionLoader(newCustomActionLoader());

Config your routes.

This component support all methods which supported by express.

About the details of config route, please refer to here: Express Router

About

A middleware to load controllers.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages