Вы можете настроить промежуточное ПО до / после маршрутов, чтобы ставить в очередь и удалять запросы, если они выполняются. Как уже упоминалось, это не лучшая практика, но это способ сделать это в рамках одного процесса (не будет работать для моделей без серверов)
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();
})