为了账号安全,请及时绑定邮箱和手机立即绑定

nodejs express一个使用问题(和流相关)

nodejs express一个使用问题(和流相关)

qq_笑_17 2018-11-15 14:11:52
我在网上查看express相关资料的时候,看到了下面这样的代码(我做了稍微改动,但是原理和关键内容没有变)这段代码个人没看太懂,大致应该是基于流来实现输出。但还是不太懂另外在chrome中运行,一直是加载中,并没有结果。在ff中,加载一段时间后取消加载(点击url输入框旁边的叉),可以在控制台看到如下内容(不显示在网页上):我对整个过程表示非常的疑惑,希望有相关经验的朋友能指点一二,或者解释一些内容和浏览器这种情况是什么意思..谢谢
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

基础知识。

Node.js的util模块和Stream模块,http模块和express框架。

解答3个注释。

<co id="callout-streams-express-1" />那一行。util.inherits(A, B)是Node.js原生util模块的继承方法,实现A继承B,并且结合下两行B.call(A)使用更好;

<co id="callout-streams-express-2" />那一行。util.inspect(Object)是Node.js原生util模块的对象转字符串的方法,基本等价于JSON.stringify();

<co id="callout-streams-express-3" />那一行。是使用Stream模块的管道方法,从读取流直接传输到写入流;

解决问题。

chrome一直运行中,是因为pipe()管道方法无法判断读取流已经写入完毕,http链接无法结束,也就没办法加载。需要在代码中pipe(null)显式指定读取流读取结束,然后写入流才会知道写入结束。

if (this.limit === 0) {    // Done
    this.push(null);
}

最后安利一本书《Node.js硬实战》。

soonfy


查看完整回答
反对 回复 2018-12-05
  • 1 回答
  • 0 关注
  • 519 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号