2012-01-12 125 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