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

我在网上查看express相关资料的时候,看到了下面这样的代码(我做了稍微改动,但是原理和关键内容没有变)

https://img4.mukewang.com/5c076fef0001f60506140951.jpg

这段代码个人没看太懂,大致应该是基于流来实现输出。但还是不太懂

另外在chrome中运行,一直是加载中,并没有结果。

在ff中,加载一段时间后取消加载(点击url输入框旁边的叉),可以在控制台看到如下内容(不显示在网页上):

https://img3.mukewang.com/5c076ffc0001deeb14380252.jpg

我对整个过程表示非常的疑惑,希望有相关经验的朋友能指点一二,或者解释一些内容和浏览器这种情况是什么意思..谢谢

qq_笑_17
浏览 520回答 1
1回答

30秒到达战场

基础知识。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&nbsp;(this.limit&nbsp;===&nbsp;0)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Done &nbsp;&nbsp;&nbsp;&nbsp;this.push(null); }最后安利一本书《Node.js硬实战》。soonfy
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript