我想记录除favicon.ico之外的所有请求。 起初我想简单地创建一个函数并调用express.logger(),但是在函数内调用express.logger()不起作用。
//DOES NOT LOG
app.use("/", function(req, res, next){
console.log('executing 1');
express.logger();
next();
});
因此我不能使用if语句来检查res.url。
现在我正在尝试以下但我被困住了:
app.use(function(req, res, next){
if(req.url=="/favicon.ico"){
//Somehow skip the next app.use
}else{
next(); //otherwise just go to next
}
});
app.use("/", express.logger());
非常感谢!
答案 0 :(得分:2)
express.logger()函数返回另一个具有快速中间件签名的函数(函数(req,res,next))。调用它不会执行日志记录,只返回记录器中间件。
试试这个 -
app.use(function(req, res, next){
if(req.url=="/favicon.ico"){
next();
}else{
express.logger()(req, res, next);
}
});
从代码中删除app.use(express.logger())。
答案 1 :(得分:2)
您可以使用express.favicon
中间件,并在包含记录器中间件之前包含该中间件。这实际上是connect.favicon
(express.favicon
所基于的)页面上提到的用例:
app.use(express.favicon()); // you can also pass path to favicon file, see docs
app.use(express.logger());
(docs)