如何在express中重构中间件路线?

如何在express中重构中间件路线?,express,routes,refactoring,Express,Routes,Refactoring,我有个问题。遵循此代码: const express = require('express'); const usersRouter = require('./routes/users'); const carsRouter = require('./routes/cars'); const app = express(); app.use(express.json()); app.use('/users', usersRouter); app.use('/cars', carsRouter

我有个问题。遵循此代码:

const express = require('express');
const usersRouter = require('./routes/users');
const carsRouter = require('./routes/cars');

const app = express();
app.use(express.json());

app.use('/users', usersRouter);
app.use('/cars', carsRouter);
//and other app use routes

module.exports = app;

问题是关于app.use路由的,想象一下有50条、100条、1000条路由,每次更新app.js并不是最好的做法!如何以正确的方式重构它?

有两种可能的情况:

  • 实际上,有50、100、1000个不同的功能(或路由器)对应许多路由。在这种情况下,您需要以整洁的方式组织它们。我建议扫描文件夹并调用
    app。循环使用它们
  • 这里没有太多不同的函数,但是有复制/粘贴代码,或者可能有一些路由对应于一个函数。这意味着您可以将这些函数组织在一个数组中,然后在循环中使用
    app。或者,您可以创建通用的muddleware来分析路径并调用适当的函数来处理请求:
  • 
    应用程序使用(功能(请求、恢复、下一步){
    if(请求路径匹配(/…/)){
    返回。。。
    }
    if(请求路径匹配(/…/)){
    返回。。。
    }
    ...
    //如果没有匹配项,则运行下一个中间件
    next();
    });