Node.js: Как сделать что-то для всех HTTP-запросов в Express? - PullRequest
30 голосов
/ 01 сентября 2011

Итак, я хотел бы сделать что-то вроде:

app.On_All_Incomeing_Request(function(req, res){
    console.log('request received from a client.');
});

текущему app.all() требуется путь, и если я приведу, например, этот /, то он будет работать только тогда, когда я нахожусь надомашняя страница, так что это еще не все ..

В обычном node.js это так же просто, как написать что-нибудь после того, как мы создадим http-сервер, и до того, как мы осуществим маршрутизацию страницы.сделать это с помощью экспресс, и каков наилучший способ сделать это?

Ответы [ 2 ]

46 голосов
/ 01 сентября 2011

Express основан на промежуточном программном обеспечении Connect .

Возможности маршрутизации Express предоставляются router вашего приложения, и вы можете свободно добавлять свое промежуточное программное обеспечение в свое приложение.

var app = express.createServer();

// Your own super cool function
var logger = function(req, res, next) {
    console.log("GOT REQUEST !");
    next(); // Passing the request to the next handler in the stack.
}

app.configure(function(){
    app.use(logger); // Here you add your logger to the stack.
    app.use(app.router); // The Express routes handler.
});

app.get('/', function(req, res){
    res.send('Hello World');
});

app.listen(3000);

Это так просто.

(PS: Если вам нужна просто запись в журнал, вы можете использовать logger , предоставленный Connect)

1 голос
/ 27 февраля 2019

Вы должны сделать это:

app.all("*", function (req, resp, next) {
   console.log(req); // do anything you want here
   next();
});
...