2017-01-03 3 views
0

У меня есть стек MEAN, когда интерфейс требует URL, как /movies/KN3MJQR.mp4,Get метод вызывается п числа раза при потоковой передаче MEAN стек

блока прибудут в routes.js выглядит это

app.get('/movie/:url', function(req, res) { 
     try { 
      var url = req.url.split('/')[2] 
       res.sendfile(moviesFolder + url); 
     #i want to add my logic for incrementing view count here. 

     } catch (e) { 
      console.log(e); 
     } 
    }); 

Я хочу добавить логику, чтобы увеличить количество просмотров каждого из фильма, когда запрос поднят на .mp4. Я попытался добавить логику подсчета показаний инкремента в месте, прокомментированном в коде, как показано выше, только чтобы найти, что весь метод get получает n число раз, когда происходит потоковая передача. Как я могу справиться с этой логикой?

Update: Код для проверки такой же, как ответил @rsp

if(req.get('Range')===('bytes=0-')){ 
    console.log('first call'); 
}else{ 
    console.log('further call'); 
} 

ответ

1

Конечная точка может попасть во много раз, потому что res.sendfile() поддерживает диапазоны и клиент может сделать несколько загрузок неполных данных.

Вы можете проверить соответствующий заголовок req.get('Range') и посмотреть, является ли это первой или последней частью (в зависимости от того, хотите ли вы подсчитать каждую начатую загрузку или только готовые).

Для получения дополнительной информации о заголовке, см: