这是一个普通的节点练习,即使使用readable.once(" end"),每个请求的on(" end")回调也会触发两次。这是代码:
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");
});
答案 0 :(得分:3)
每当您请求主目录的页面一时,就会发送2个请求" /"另一个是#34; favicon.ico" ,这就是为什么函数会触发两次,为了解决这个问题,为req.url设置一个if条件并将你想要的目录空间化,它就可以工作了。