node.js - 如何在 Express 中获取所有已注册的路线?

标签 node.js express

我有一个使用 Node.js 和 Express 构建的 Web 应用程序。现在我想列出所有已注册的路线及其适当的方法。

例如,如果我执行了

app.get('/', function (...) { ... });
app.get('/foo/:id', function (...) { ... });
app.post('/foo/:id', function (...) { ... });

我想检索一个对象(或与之等效的对象),例如:

{
  get: [ '/', '/foo/:id' ],
  post: [ '/foo/:id' ]
}

这可能吗?如果可以,怎么做?

最佳答案

表达 3.x

好的,我自己找到的......它只是 app.routes :-)

表达 4.x

Applications - 使用 express()

构建

app._router.stack

Routers - 使用 express.Router()

构建

router.stack

注意:堆栈也包含中间件功能,应过滤以仅获取“路由”

关于node.js - 如何在 Express 中获取所有已注册的路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14934452/

相关文章:

json - 连接停止时如何处理 mongoose 数据库

node.js - 不支持的内容类型图像/PNG

node.js - 在另一个集合中保存新文档后,是否可以在回调函数中更新文档?

javascript - 使用 app.post 和 req.body 获取 undefined

javascript - Express.js 路由没有意义

javascript - 如何修补 npm 库的依赖项?

javascript - Atom Electron - 检测开发工具就绪

node.js - 让 ExpressJS 为映射路径返回 404

node.js - express 包中的app.get方法

node.js - Sequelize 关联的某些设置不起作用