📜  express js 列出所有路由 - Javascript (1)

📅  最后修改于: 2023-12-03 15:14:57.226000             🧑  作者: Mango

Express.js - 列出所有路由

在 Express.js 中列出所有路由可以帮助程序员更好的了解整个应用的路由结构,方便维护与调试。

方法一 - 使用 express-list-routes 模块

express-list-routes 模块可以帮助我们在控制台上列出所有的路由,安装方法如下:

npm install express-list-routes

在应用中使用 express-list-routes,示例代码如下:

const express = require('express');
const listEndpoints = require('express-list-endpoints');

const app = express();

// 定义路由
app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.get('/user/:id', (req, res) => {
  res.send(`User ID: ${req.params.id}`);
});

// 打印路由信息
console.log(listEndpoints(app));

使用以上代码在控制台上输出的结果如下:

## 首页 /
  - GET
## 用户信息 /user/:id
  - GET
方法二 - 手动遍历所有路由

手动遍历所有路由的方法很简单,只要遍历 app._router.stack 数组中的中间件即可,示例代码如下:

const express = require('express');

const app = express();

// 定义路由
app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.get('/user/:id', (req, res) => {
  res.send(`User ID: ${req.params.id}`);
});

// 遍历路由
app._router.stack.forEach((middleware) => {
  if (middleware.route) {
    // 路由信息
    console.log(`${Object.keys(middleware.route.methods)} - ${middleware.route.path}`);
  }
});

使用以上代码在控制台上输出的结果如下:

GET - /
GET - /user/:id

以上两种方法均可以帮助我们有效地列出所有路由信息,使得程序员更加方便地维护与调试应用。