('end')stream的侦听器上的Node.js触发两次

这是一个普通的节点实践,即使使用readable.once(“end”),on(“end”)callback也会为每个请求触发两次。 这是代码:

require("http").createServer(function (req, res) { var readable = require("fs").createReadStream("./image.jpg",{highWaterMark:1024*1024}); readable.on("data", function (data) { res.write(data); }) readable.on("end", function () { res.end() console.log("Ended"); }) }).listen(9000, function () { console.log("Listening.... on 9000"); }); 

有两个请求被发送,每当你请求一个主目录“/”的页面,另一个为“favicon.ico”,这样为什么函数触发两次,为了解决这个要求条件为req .url和spacify你想要的目录,它将工作。