我有一个中间件,它运行一系列动作一次,然后当新请求到达时我不想再使用它了。有没有办法让我的中间件从堆栈中删除自己?
谢谢,李
就在这里。考虑一下:
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);
把它当作符号代码,我没有机会测试它,但这个概念就在那里......