2012-01-12 79 views
0

A中的404如何在我的應用程序,以最好地處理404情況下,幾乎百思不得其解。這是一個非常基本的例子。妥善處理expressjs

//****************************** 
// BUILD THE HTTP SERVER 
//****************************** 
var express = require('express'); 
var app = express.createServer(); 

app.get('/login', function(req, res){ 
    console.log("hit the login"); 
    res.send('you hit the login'); 
}); 

app.get('*', function(req, res){ 
    console.log("got a 404"); 
    res.send('what???', 404); 
}); 

app.listen(8081); 
console.log('Server started on port: 8081'); 

如果我火了服務器,並點擊服務器「/」的索引我正確地得到404的消息,但在日誌2「得到了404」在控制檯上的日誌條目...奇。

所以,如果我打的「/登錄」頁面我得到正確的頁面,以及相應的信息到控制檯,但是,我也得到了404消息到控制檯嗎?

這是預期的行爲?我在4.11上使用最新的2.5.4 express,但在其他版本的節點上嘗試過,結果相同。

我真的不喜歡的事實,我的404就可以得到呼籲每一個請求,我必須做一些錯誤的。

回答

3

這可能是由於事實,即瀏覽器嘗試也讓favicon您的頁面。

只需使用express.favicon()創建服務器:

express.createServer(
    express.favicon()  
); 

您可能還需要使用logger發現這樣的事情,這是非常有用的中間件。

+0

你是正確的,那是缺少的部分。 – 2012-01-12 18:27:16