当我们在节点js中使用流时,很容易理解从磁盘到节点js再到磁盘的数据流。但是,如果流来自请求主体怎么办?在读取数据或node.js时,通过网络的数据流会将整个流保存在其内存中吗?
答案 0 :(得分:1)
请求正文是网络上的传入流。 node.js将从TCP读取部分内容,填充一个本地缓冲区,然后再读取其他内容,直到从缓冲区中本地读取其中的一部分以在缓冲区中留出更多空间为止。
读取时数据流经网络
是的,为了提高效率,在流对象和TCP堆栈中都有一些局部缓冲。如果本地缓冲区已满,TCP将使用流控制告诉源暂停发送。
还是node.js将整个流保存在其内存中?
不,不是全部在内存中。