現在、実行時に 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 で undefined のメソッド 'match' を呼び出せません (/var/lib/root/runtime/repo/node_modules/express/lib/router/index.js:205:17)
Express.js のドキュメントにより、これは正しい方法である必要があります。
app.routes オブジェクトには、関連付けられた HTTP 動詞によってマップされた定義済みのすべてのルートが格納されています。このオブジェクトは、イントロスペクション機能に使用できます。たとえば、Express はルーティングのためだけでなく、 app.options() が使用されない限り、デフォルトの OPTIONS 動作を提供するためにこれを内部的に使用します。アプリケーションまたはフレームワークは、このオブジェクトからルートを削除するだけで、ルートを削除することもできます。
Node.jsで実行時にルートを正しく削除する方法を知っている人はいますか?
どうもありがとう!