Javascript 解析express app.js路由

Javascript 解析express app.js路由,javascript,node.js,express,Javascript,Node.js,Express,如何基于all.js文件获取所有可用路由的列表?您可以在app.routes对象中查找,该对象是路由器的一个实例。最简单的方法可能是在交互式侦听器中加载应用程序,只需查看app.routes中包含的各种对象 如果你想更有条理,你可以阅读路由器和路由对象的源代码,例如,你可以在应用程序路由对象中挖掘,它是路由器的一个实例。最简单的方法可能是在交互式侦听器中加载应用程序,只需查看app.routes中包含的各种对象 如果你想更加有条不紊,你可以阅读路由器和路由对象的来源,例如,实际上有一种更好的方法

如何基于all.js文件获取所有可用路由的列表?

您可以在
app.routes
对象中查找,该对象是
路由器的一个实例。最简单的方法可能是在交互式侦听器中加载应用程序,只需查看
app.routes
中包含的各种对象


如果你想更有条理,你可以阅读路由器和路由对象的源代码,例如,

你可以在
应用程序路由
对象中挖掘,它是
路由器
的一个实例。最简单的方法可能是在交互式侦听器中加载应用程序,只需查看
app.routes
中包含的各种对象


如果你想更加有条不紊,你可以阅读路由器和路由对象的来源,例如,实际上有一种更好的方法,TJ Holowaychuck(Express的作者)用它做了一个实验:


实际上有一种更好的方法,TJ Holowaychuck(《快车》的作者)用它做了一个实验:


routes对象具有动词作为属性。您可以对它们进行迭代,并构建一个包含所有路由、方法等的列表

我创建了一个要点,创建了一个自我描述的RESTAPI。我相信这是可以改进的,但是如果您愿意,您可以看到我是如何迭代routes对象的


欢迎对要点进行反馈。

routes对象将动词作为属性。您可以对它们进行迭代,并构建一个包含所有路由、方法等的列表

我创建了一个要点,创建了一个自我描述的RESTAPI。我相信这是可以改进的,但是如果您愿意,您可以看到我是如何迭代routes对象的


欢迎对要点进行反馈。

这正是您键入此答案时我所做的。我已经单独发布了,但OP将来应该按照您的建议执行。:)这正是你键入答案时我正在做的。我已经单独发布了,但OP将来应该按照您的建议执行。:)这似乎不再管用了,至少对我来说不管用。使用express 3.1.2。这似乎不再有效,至少对我来说不是。使用express 3.1.2。
for(var type in app.routes.routes) {
  console.log(type+":");
  for(var rts in app.routes.routes[type]) {
    console.log(app.routes.routes[type][rts]);
  }
}
app.routes.all().forEach(function(route){
  console.log('  \033[90m%s \033[36m%s\033[0m', route.method.toUpperCase(), route.path);
});