我正在尝试在我的根目录中管道一个mp4文件,但我无法让它工作,它开始缓冲流式传输但从不播放该文件。
这是我的代码
var http = require('http'),
server = http.createServer(),
fs = require('fs'),
rs = fs.createReadStream('./Practice/Jumanji.mp4');
server.on('request', function(req, res) {
res.writeHead(200, {
'Content-Type': 'video/mp4'
});
rs.pipe(res);
res.end();
});
server.listen(4000);
电影尝试加载但从未加载。
答案 0 :(得分:1)
我看到你的代码中有两个问题
rs = fs.createReadStream('./Practice/Jumanji.mp4');
行应该在回调中。res.end();
。在您的管道有时间撰写视频之前,这会立即关闭res
,因此您基本上是"Send this stream"
紧跟着"Send nothing"
。您应该删除该行,因为管道将在写入所有数据时自动关闭res
。所有这些都说,你可能想要考虑很多错误处理逻辑,你可能想要考虑这个错误处理逻辑。