我正在学习NodeJS WriteStream。我无法理解res.end()
函数调用的效果。如果以下示例中的res.end()
调用不存在,会发生什么情况?我移除了它,但没有任何改变,在这两种情况下,结果都返回给客户机。
const fs = require("fs");
const server = require("http").createServer();
server.on("request", (req, res) => {
const readable = fs.createReadStream("test-file.txt");
readable.on("data", (chunk) => {
res.write(chunk);
});
// Is the following piece of code really needed?
readable.on("end", () => {
res.end();
});
});
server.listen(8000, "127.0.0.1", () => {
console.log("Listening...");
});
在某些场景中,res.end用于结束响应,就像它所说的那样,否则它将永远不会停止。
如果读取的数据很大,可以使用它来执行需要时间的异步函数,或者使用带有导出的shell脚本等等。