Node.js Express 4从应用程序堆栈中动态删除中间件

Node.js Express 4从应用程序堆栈中动态删除中间件,node.js,express-4,Node.js,Express 4,我是node的新手,我正在尝试在Express 4中“动态”添加和删除路由。我正在使用app.use(路径、路由)添加它们,并且我能够在app.u router.stack数组中找到它们,但我无法删除特定路由器。可能吗?我尝试了app.\u router.stack.splice(myRouterIndex,1),但没有成功 以下是我的例子: for (var i = 0; i < app._router.stack.length; i++) { if(app._rout

我是node的新手,我正在尝试在Express 4中“动态”添加和删除路由。我正在使用app.use(路径、路由)添加它们,并且我能够在app.u router.stack数组中找到它们,但我无法删除特定路由器。可能吗?我尝试了app.\u router.stack.splice(myRouterIndex,1),但没有成功

以下是我的例子:

for (var i = 0; i < app._router.stack.length;  i++) {
        if(app._router.stack[i].name=='router') {
          console.log(app._router.stack[i].name);     
          app._router.stack.splice[i,1];
          console.log(app._router.stack);          
          break;   
        }
      }
for(变量i=0;i

第二个console.log(app._router.stack)打印的内容与第一个完全相同。

这是一个简单的错误,因为我是Node的新手。谢谢本·福琼

正确的语法是app.\u router.stack.splice(i,1);
适当拼接是一种方法。使用方括号[]执行此操作不会引发任何错误,但根本无法按预期工作。

splice
是一种方法,
splice(i,1)
。尽管你在上面的例子中正确地使用了它,我将假设一个打字错误?可能是