Skip to content

SFantasy/express-load-router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

express-load-router

Load routers from specific folders for Express.js

NPM version npm download David deps

中文文档

Install

npm i express-load-router -S

Usage

const path = require('path');
const express = require('express');
const loadRouter = require('express-load-router');

const app = express();

// Use `path.join(__dirname, 'path/to/folder')` here
loadRouter(app, path.join(__dirname, 'controllers'));

Options

loadRouter(app, path.join(__dirname, 'controllers'), options);
option type default
excludeRules Array []
rewriteRules Map new Map()

Controller declaration

There are three kinds of Controller for this package:

  • Plain function
exports.api = (req, res) => {
  res.send('API');
};
  • Object
Property Type Required Default Note
method String No GET one of ['GET', 'POST', 'PUT', 'DELETE']
params Array No []
middlewares Array No [] Array of middlewares, see below
handler Function Yes --

e.g.

exports.api = {
  method: 'GET',
  params: [':id'],
  handler(req, res) {
    res.send('API');
  }
};

Middlewares support

This package also support middlewares in controller.

e.g.

exports.api = {
  method: 'GET',
  params: [':id'],
  middlewares: [
    function (req, res, next) {
      console.log('Middleware 1');
      next();
    },
    function (req, res, next) {
      console.log('Middleware 2');
      next();
    },
  ],
  handler(req, res) {
    return res.send(`product detail ${req.params.id}`);
  },
};

Example

See example.

License

The MIT License

About

Automatically create routers from specified folder structures for Express.js

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published