2016-12-11 39 views
1

這是一個普通的節點實踐,即使使用readable.once(「end」),on(「end」)回調每次請求觸發兩次。這裏是塔代碼:('end')流的偵聽器上的Node.js觸發兩次

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

所以這意味着兩個請求正在處理。 – robertklep

+0

否,這只是一個請求。 –

+0

如果在使用'.once()'時觸發兩次,唯一合理的解釋是有兩個請求被處理。嘗試添加'console.log(req.url)'到請求處理程序。 – robertklep

回答

3

有每當你請求一個頁面的主目錄發送請求2「/」,另一個爲「favicon.ico的」,這樣,爲什麼功能火災兩次,爲了解決這個問題,爲req.url提供了一個if條件,並且將你想要的目錄分隔開來,並且它將起作用。

+0

@robertklep檢查一下。 –

+1

@BaHaaJr。就像我說的:D – robertklep

相關問題