gpt4 book ai didi

javascript - Node http res.end

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

我目前正在阅读“Node.js in action”,并正在关注一些在线学习资源。本书中的第一个示例展示了如何将流通过管道传输到响应。像这样:

var http = require('http'),
fs = require('fs');

http.createServer(function(req, res){
res.writeHead(200, {"Content-Type": "image/png"});
fs.createReadStream("./image.png").pipe(res);
}).listen(xxxx)

我的问题是这段代码的有效性如何?我的印象是,无论何时使用 http,你都应该以以下结尾:

res.end();

这不是必需的吗,因为管道意味着结束?无论何时写回复,我都应该结束它吗?

最佳答案

当您的可读流完成读取(image.png 文件)时,默认情况下,它会发出 end() 事件,这将调用 end () 可写流(res 流)上的事件。在这种情况下,您无需担心调用 end()

值得指出的是,在这种情况下,调用 end() 事件后,您的 res 将不再可写。所以,如果你想让它保持可写,只需将 end: false 选项传递给 pipe(),例如:

fs.createReadStream("./image.png").pipe(res, { end: false });

,然后在将来的某个时间调用 end() 事件。

关于javascript - Node http res.end,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27509711/

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