数据事件未触发节点.js
Data event not firing Node.js
我正在编写一个应用程序,该应用程序下载带有扩展名node-ytdl的YouTube视频。我想向客户端发送下载进度指示器,因此我正在尝试获取块信息来计算它。我的代码看起来像这样。
var writing = fs.createWriteStream('video.mp4');
var stream = ytdl('https://www.youtube.com/watch?v=jofNR_WkoCE', { filter: function(format) { return format.container === 'mp4'; }, quality: "lowest" });
stream.pipe(writing);
var completed_len = 0;
var total_len = 0;
writing.on('data', function(chunk) {
console.log('received data!');
completed_len += chunk.length;
});
writing.on('close', function ()
{
console.log('close');
res.send('completed!');
});
奇怪的是,即使每当下载完成时都会触发"关闭",但我也没有从"数据"事件中获得任何日志。视频编写正确。我对 Node.js 流有点陌生。我做错了什么吗?
您刚刚绑定了错误的流。 'data'
事件将发生在可读流上,例如 ytdl
创建的stream
。
stream.on('data', function (chunk) {
// ...
});
如果您使用的是 Node 0.8 或更早版本,则两个流上都会发生'close'
事件。虽然 0.10 将可写流的事件更改为 'finish'
.
相关文章:
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 节点.js将变量显示为 HTML
- 如何解决'窗口未定义'终端上的节点JS出错
- S3文件上传文件对象使用节点js
- 在节点 js 中使用护照本地模块验证(登录)密码时出错
- 嵌套的promise节点js
- 使用节点JS发送电子邮件
- 节点JS重定向循环
- 起始节点.js用于并行的线程池
- 获取图像节点js的主色
- 调整节点js中的图像大小
- 节点JS express和控制台输出到命令行与浏览器
- 节点JS:时间机器坏了——timekeeper.travel不做时间旅行
- 如何访问日期并将其插入数据库?节点.JS&MongoDB
- 节点.js快速删除 req.body 不起作用
- 节点.js中的嵌套异步操作
- 如何在核心php应用程序中使用节点js json Web令牌库
- 使用节点js的Bootstrap和Jquery
- 节点.js加密输入/输出类型
- 节点.js在不可能的地方打印“未定义”