3

我有一个中间件,它运行一系列动作一次,然后当新请求到达时我不想再使用它了。有没有办法让我的中间件从堆栈中删除自己?

谢谢,李

4

1 回答 1

3

就在这里。考虑一下:

var app = require('express')();
function myHandler(req, res, next) {
  //do something usefull

  //locate this handler
  var handlerIndex = -1;
  for(var i =0; i < app.stack.length; i++) {
    if (app.stack[i].handle === myHandler) {
      handlerIndex = i;
    }
  }
 if (handlerIndex > -1) {
    app.stack.splice(handlerIndex, 1);
 }
 next();
});

app.use("/api", myHandler);

把它当作符号代码,我没有机会测试它,但这个概念就在那里......

于 2012-10-25T10:33:38.773 回答