You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Express项目的控制器代码中获取所有已注册路由及对应请求方法?

列出Express应用中已注册的路由及请求方法

根据提供的路由文件整理结果

  • POST 请求路由:["createUser", "addTask", "login"]
  • GET 请求路由:["getAllPost"]

动态自动提取路由的实现方案

如果路由文件较多,手动整理效率低,可以通过Express内置的路由栈属性自动提取所有注册路由,以下是实用代码:

const express = require('express');
const app = express();

// 导入并注册你的路由文件
const taskRouter = require('./Router/task');
const workRouter = require('./Router/work');
app.use(taskRouter);
app.use(workRouter);

// 初始化路由分类容器
const routeMap = {
  GET: [],
  POST: []
};

// 遍历路由栈提取信息
app._router.stack.forEach(layer => {
  if (layer.route) {
    // 去除路径开头的斜杠
    const path = layer.route.path.replace(/^\//, '');
    // 获取当前路由支持的请求方法
    const methods = Object.keys(layer.route.methods);
    methods.forEach(method => {
      routeMap[method.toUpperCase()].push(path);
    });
  }
});

// 输出整理后的路由
console.log('Post:', routeMap.POST);
console.log('Get:', routeMap.GET);

运行这段代码后,控制台会自动输出和你期望格式一致的路由分类结果,后续新增路由也无需手动更新整理。

内容的提问来源于stack exchange,提问作者kulwant raj kisku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:22:48