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

时间:2015-02-06 14:32:12

标签: node.js express-4

我是节点中的新手,我正在尝试在Express 4中“即时”添加和删除路由。我正在使用app.use(路径,路径)添加它们,我能够找到它们在app._router.stack数组中,但我无法删除特定的路由器。可能吗?我试过app._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;   
        }
      }

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

1 个答案:

答案 0 :(得分:3)

这是一个简单的错误,因为我是Node的新手。谢谢Ben Fortune!

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