所以我要在node.js + express中编写一个应用程序,以实现以下目标。
curl...&
使&
在后台运行)200
代码处理第二个请求。是否可以通过express实现此目的,所以当我一次发送几个请求时,不会发生像未正确添加到MongoDB中这样的问题。
答案 0 :(得分:1)
您可以在路由之前/之后设置中间件,以排队和排队请求(如果正在进行中)。正如人们提到的那样,这并不是真正的最佳实践,但这是在单个过程中完成的一种方法(不适用于无服务器模型)
const queue = [];
const inprogress = null;
app.use((req, res, next) => {
if (inprogress) {
queue.push({req, res, next})
} else {
inprogress = res;
}
})
app.get('/your-route', (req, res, next) => {
// run your code
res.json({ some: 'payload' })
next();
})
app.use((req, res, next) => {
inprogress = null;
if (queue.length > 0) {
const queued = queue.shift();
inprogress = queued.res;
queued.next();
}
next();
})