Node.Js使用参数快速获取请求| ERR_CONNECTION_REFUSED

时间:2018-03-20 18:58:04

标签: node.js express get

我在客户端有一个基本的html5播放器。我正在通过参数获取特定视频的请求。我在空项目上尝试过它运行良好。然后我将获取请求复制到我的实际项目中,并且它给了我ERR_CONNECTION_REFUSED错误。我被困了,我真的需要帮助。

这是我的获取方法:

    // Send Video to HTML5 player
    app.get('/api/video/:folder' , function(req, res) {
      var folder = req.params.folder;
      const path = 'D:/VideoClips/' + folder + '/clip.mp4';
      const stat = fs.statSync(path);
      const fileSize = stat.size;
      const range = req.headers.range;

      if (range) {
        const parts = range.replace(/bytes=/, "").split("-");
        const start = parseInt(parts[0], 10);
        const end = parts[1]
          ? parseInt(parts[1], 10)
          : fileSize-1;

        const chunksize = (end-start)+1;
        const file = fs.createReadStream(path, {start, end});
        const head = {
          'Content-Range': `bytes ${start}-${end}/${fileSize}`,
          'Accept-Ranges': 'bytes',
          'Content-Length': chunksize,
          'Content-Type': 'video/mp4',
        }

        res.writeHead(206, head);
        file.pipe(res);
      } else {
        const head = {
          'Content-Length': fileSize,
          'Content-Type': 'video/mp4',
        }
        res.writeHead(200, head);
        fs.createReadStream(path).pipe(res);
      }
    });

我只是用javascript更改html5播放器的src。当它改变了它向服务器发出请求时:

var player = document.getElementById('videoPlayer');
player.src = 'http://xxx.xxx.xx.xx:4000/api/video/' + folder;

我无法找到任何拒绝连接的理由。 chrome developer的错误日志:

GET http://xxx.xxx.xx.xx:4000/api/video/testfolder_30 net::ERR_CONNECTION_REFUSED

0 个答案:

没有答案