【发布时间】:2013-02-22 15:27:53
【问题描述】:
目前我正在尝试删除一个 运行时的 Node.js 服务器应用程序。
for (k in self.app.routes.get) {
if (self.app.routes.get[k].path + "" === route + "") {
delete self.app.routes.get[k];
break;
}
}
调用此方法后,self.app.routes 对象中不再存在路由。但是在我尝试访问当前删除的路由后,我收到以下错误:
TypeError:无法调用未定义的方法“匹配” 在 Router.matchRequest (/var/lib/root/runtime/repo/node_modules/express/lib/router/index.js:205:17)
由于 express.js 的文档,这一定是正确的做法。
app.routes 对象包含由关联的 HTTP 动词映射定义的所有路由。此对象可用于自省功能,例如 Express 在内部不仅将其用于路由,而且还提供默认的 OPTIONS 行为,除非使用 app.options()。您的应用程序或框架也可以通过简单地从该对象中删除路由来删除路由。
有没有人知道如何在 Node.js 中正确删除运行时的路由?
非常感谢!
【问题讨论】:
-
您能确认一下您的 Express 版本吗?
-
对不起。我的版本是:“3.1.0”
标签: javascript node.js express