Node.js在服务器运行时删除路由
Node.js Remove route while server is running
当前我正在尝试删除运行时的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:无法调用未定义的方法"match"在Router.matchRequest(/var/lib/root/runtime/repo/nod_modules/express/lib/Router/index.js:205:17)
由于express.js的文档,这一定是正确的方法
app.routes对象包含由关联的HTTP谓词映射的所有路由。此对象可用于内省功能,例如Express在内部不仅用于路由,而且用于提供默认的OPTIONS行为,除非使用app.OPTIONS()。您的应用程序或框架也可以通过从该对象中删除路由来删除路由。
有人知道如何在Node.js运行时正确删除路由吗?
非常感谢!
您得到的错误是因为路由仍然存在。delete
不会移除元素,它只会将元素设置为undefined
。要移除,请使用拼接(k,n)(从第k个元素移除n个项目)
for (k in self.app.routes.get) {
if (self.app.routes.get[k].path + "" === route + "") {
self.app.routes.get.splice(k,1);
break;
}
}
不过,您的路由函数应该处理这个问题(选择要接受的路径/url),这会更好。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- Emberjs应用程序加载在除Index之外的所有路由上
- 正在使用$location.path(.)路由ng视图
- 可以't通过Express路由从Mongodb中删除文档
- 带有 MVC asp.net 角度路由删除 URL 上的哈希 #
- 删除主干路由中的“#”
- 从 Express.js 路由堆栈中删除路由器
- 从路由转换不会删除 Ember.js 中退出路由的控制器观察器
- AngularJS与RequireJS路由删除散列
- 从url AngularJS中删除路由参数
- Google Maps API v3:计算出路由后,删除其他标记
- 删除的AJAX路由错误.为什么索引页出现DELETE路由错误
- 当使用Angular JS和Laravel删除注释时,被重定向到默认的应用路由
- 是否有一种方法可以从传单路由机的路由中删除标记?
- Node.js在服务器运行时删除路由
- 从 angularjs 中的控制器中删除路由参数
- AngularJS路由url删除这个&;#!&;
- 表示多个删除路由
- sammy.js如何存储它的路由,它们是否在同一域中共享,以及它们是否可以被删除