Экспресс одновременный запрос Http - PullRequest
0 голосов
/ 06 октября 2018

Пользователь может запустить несколько одновременных HTTP-запросов на экспресс-сервер.На стороне сервера я хочу заблокировать все одновременные запросы, кроме первого (для данного конкретного пользователя), затем выполнить какое-либо действие и разблокировать другие запросы по одному.

Запросы пользователей не должны блокироваться запросами других пользователей.

Как этого добиться в nodejs?Запрос пользователя может быть идентифицирован (уникален) по заголовку авторизации.

Спасибо

1 Ответ

0 голосов
/ 06 октября 2018

Есть много способов достичь этого, но я думаю о простейшем:

var blocked = {};
app.get('/bla', function(req, res){

    var id = getIdFromRequest(req);

    if (blocked[id]) // if true then another request is being served
        return res.send('Concurrent requests not allowed');

    blocked[id] = true;

    // do your thing here

    // and respond
    res.send('some data');

    // unlock the user
    delete blocked[id];
});
...