我有一个使用Node.js和Express构建的Web应用程序。现在,我想用适当的方法列出所有已注册的路由。
例如,如果我执行过
app.get('/', function (...) { ... }); app.get('/foo/:id', function (...) { ... }); app.post('/foo/:id', function (...) { ... });
我想检索一个对象(或等效的东西),例如:
{ get: [ '/', '/foo/:id' ], post: [ '/foo/:id' ] }
这可能吗?如果可以,怎么办?
更新: 同时,我创建了一个名为get-routes的npm软件包,该软件包从给定的应用程序中提取路由,从而解决了此问题。当前,仅支持Express 4.x,但我想现在可以了。仅供参考。
好吧,我自己找到的…只是app.routes:-)
app.routes
应用程序 -内置express()
express()
app._router.stack
路由器 -内置express.Router()
express.Router()
router.stack
注意 :堆栈也包括中间件功能,应该对其进行过滤以仅获取 “路由” 。