我是node.js初学者。我正在尝试编写一个简单的http服务器,该服务器在给定端口上提供在控制台上指定的文件。
让http = require('http'); 让fs = require('fs');
让服务器= http.createServer((请求,响应)=> {
let fileStream = fs.createReadStream(process.argv[3]);
fileStream.pipe(response);
fileStream.on('end', () => {
console.log('Stream ended.'); // 1
response.end(() => {
console.log('Response ended.'); // 2
});
});
});
server.listen(process.argv[2]);
当我通过浏览器发送请求时,第一个console.log('Stream ended')
被两次写入控制台,而第二个console.log('Response ended.)
却从未被调用,即使.txt文件中的所有内容都已发送到控制台。浏览器。
我希望两者都出现一次。
我在官方文档中找不到与此有关的任何信息,但是pipe()是否自动结束响应?为什么console.log#1会被触发两次?
提前谢谢!