我的应用需要先执行一些操作(一次),然后才开始处理请求并运行其他操作。 我正在寻找一些能够获得第一个动作和一堆处理程序的中间件。它应该首先调用该动作,并且只有在它完成时它将调用所有处理程序而不再调用第一个动作。
编辑:假设我的第一个动作需要一段时间。我可以在第一个操作的回调中注册app.get处理程序,但是在我的第一个操作完成之前到达的任何请求都将丢失。相反,我想将请求存储在队列中,直到第一个操作完成,然后才在待处理请求上调用处理程序。之后,我希望我的中间件自行删除,以便只有请求处理程序才能处理新请求。
你知道这样的中间件吗?
谢谢, 李
答案 0 :(得分:0)
嗯......不确定我是否理解正确,但是......
var done = false;
function myFunc () {
if (done==true)break;
//your code
console.log('First');
//your code
done=true;
}
app.get('/desk/settings', myFunc, function(req, res) {
console.log('Second');
});
Reuest - >中间件myFunc - >请求代码。
不是您要找的?
答案 1 :(得分:0)
您可以像这样创建自己的中间件:
app.use(function(req, res, next) {
console.log('first');
if (firstIsReady) {
next();
} else {
res.redirect('/error')
}
})
确保将其放在app.router
之前。那是你在找什么?