流式传输MEAN堆栈时,get方法被调用n次

时间:2017-01-03 16:33:56

标签: angularjs node.js express mean-stack video.js

我有一个MEAN堆栈,当前端需要一个像/movies/KN3MJQR.mp4这样的网址时,

routes.js中的get块看起来像这样

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方法在流式传输时被多次调用。我该如何处理这个逻辑?

更新:代码检查与@rsp

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

1 个答案:

答案 0 :(得分:1)

端点可以多次命中,因为res.sendfile()支持范围,客户端可以多次下载部分数据。

您可以使用req.get('Range')检查相关标题,看看它是第一个还是最后一个部分(取决于您是要计算每个已开始的下载还是仅计算已完成的下载)。

有关标题的更多信息,请参阅: