gpt4 book ai didi

javascript - response.write - 它是从可写流还是从 http.ServerResponse 调用写入?

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:54 25 4
gpt4 key购买 nike

我是 Node 的新手。在这样的设置中

server.on('request', function(request, response) {
// the same kind of magic happens here!
});

我假设 responsehttp.ServerResponse 的一个实例。但是我读过的一篇教程说:http.ServerResponseWritableStream

现在可写流和http.ServerResponse都有写方法; herehere .

我的问题是,当我调用 response.write 时,会调用哪个版本的 write?一个来自 http.ServerResponse 还是一个来自可写流?

最佳答案

http.ServerResponse 实现了 stream.Writable 接口(interface)的一个版本,但不继承其实际实现。因此,当您调用 response.write() 时,您调用的是 http.ServerResponse.write() 而不是 stream.Writable.write() .

Class: http.ServerResponse

The response implements, but does not inherit from, the Writable Stream interface.

在内部,http.ServerResponse 实际上是一个OutgoingMessage,它是一个Stream。 ,那供应write() .如果将其与 stream.Writable.write() 进行比较实现,他们写入数据的方式是不同的。

I was also curious what benefits it gets in implementing writable stream if it uses its own write for example, etc? (From Comments below)

如果不是 Node.js 基金会的一员,我无法谈论动机,但从设计的 Angular 来看,实现 stream.Writable 接口(interface)提供了一组熟悉且通用的方法和事件供开发人员使用。此外,http.ServerResponse 正在写入连接套接字(请参阅 OutgoingMessage._send() ),这不是 stream.Writable.write() 实现的一部分。也许下面的摘录提供了对基金会思维过程的一些洞察

Writable Streams

All Writable streams implement the interface defined by the stream.Writable class.

While specific instances of Writable streams may differ in various ways, all Writable streams follow the same fundamental usage pattern

关于javascript - response.write - 它是从可写流还是从 http.ServerResponse 调用写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com