簡體   English   中英

如何express.logger()除GET /favicon.ico外的所有請求? (的NodeJS / expressjs)

[英]How to express.logger() all requests except GET /favicon.ico? (Nodejs/expressjs)

我想記錄除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());

非常感謝你!

express.logger()函數返回另一個具有快速中間件簽名的函數(function(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())。

您可以使用express.favicon中間件,並在包括記錄器中間件之前將其包括在內。 這實際上是connect.faviconexpress.favicon所基於的)頁面上提到的用例:

app.use(express.favicon()); // you can also pass path to favicon file, see docs
app.use(express.logger());

docs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM