【问题标题】:how do i refactor middlewares routes in express?如何在 express 中重构中间件路由?
【发布时间】:2020-11-10 10:00:26
【问题描述】:

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

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 并不是最佳实践!如何以正确的方式重构它?

【问题讨论】:

    标签: express routes refactoring


    【解决方案1】:

    有两种可能的情况:

    1. 实际上有 50、100、1000 个不同的功能(或路由器)对应于这么多路由。在这种情况下,您需要以某种简洁的方式组织它们。建议扫描文件夹,循环调用app.use。
    2. 没有那么多不同的功能,而是有复制/粘贴代码,或者一些路由可能对应一个功能。这意味着您可以将这些函数组织在一个数组中,然后将 app.use 放入一个循环中。或者,也许您可​​以创建通用的混淆器来分析路径并调用适当的函数来处理请求:
    
        app.use(function(req, res, next) {
          if (req.path.match(/.../)) {
            return ...
          }
          if (req.path.match(/.../)) {
            return ...
          }
        
          ...
        
          // if nothing matches, run the next middleware
          next();
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2020-07-21
      • 2017-05-30
      相关资源
      最近更新 更多