使用Gridfsstream将videostream从mongoDBstream式传输到ios应用程序

我是一个相对较新的程序员,试图快速创build一个iOSvideostream应用程序。 我已经在node.js中写了后端,并且有一个到mongoDB的mongoose连接。 我已经能够使用下面的代码和gridfs上传video到数据库

function (req, res, next) { req.pipe(gfs.createWriteStream({ filename: 'filename'})); res.send("success"); }; 

我正在尝试使用以下代码来stream式传输video

  gfs.findOne({_id: req.params.id}, function (err, file) { if (err) { return res.status(400).send(err); } else if (!file) { return res.status(404).send(' '); } else { res.header("Content-Type","video/mp4"); res.header("X-Content-Type-Options", "nosniff"); res.header("Accept-Ranges", "bytes"); res.header("Content-Length",file.length); var readStream = gfs.createReadStream({_id: file._id}); readStream.on('open', function () { console.log('Starting download...'); }); readStream.on('data', function (chunk) { console.log('Loading...'); }); readStream.on('end', function () { console.log('Video is ready to play'); }); readStream.on('error', function (err) { console.log('There was an error with the download' + err); res.end(); }); readStream.pipe(res); } }); 

当我在本地主机上运行服务器并尝试通过谷歌浏览器访问video时,我所得到的只是默认的播放屏幕,而没有video。 但是,最终我试图在iOS应用程序上播放。 当我在swift上尝试同样的事情时(使用传递给mpmovieplayer的本地主机url),也没有video播放。 我知道获取请求正在经历,因为我的控制台输出适当的响应与文件大小。 我甚至在前端摆弄alamofire,并可以在响应数据中看到video的hex表示。 任何人都可以帮助这个代码? 我是否需要更新我的res.header以符合一些IOS规范? 我甚至应该使用alamofire呢? 预先感谢您的回复。