挂钩之前和之后的快递请求(在任何请求之前和任何资源之后执行)

pha*_*ani 18 node.js express

ExpressJS中间件req,res,next有像钩子.on.pipe.

但我正在寻找app.getapp.post方法的钩子.

Jon*_*ski 47

app.use()和"中间件"可用于" 之前 ",'close'并且'finish'事件的组合可用于" 之后".

app.use(function (req, res, next) {
    function afterResponse() {
        res.removeListener('finish', afterResponse);
        res.removeListener('close', afterResponse);

        // action after response
    }

    res.on('finish', afterResponse);
    res.on('close', afterResponse);

    // action before request
    // eventually calling `next()`
});

app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

一个例子是logger中间件,默认情况下会在响应后追加到日志中.

只要确保这个" 中间件 "在app.router订单确实重要之前使用.

  • 是否有必要删除监听器?当响应结束时,本身和听众都不会再次使用,或者他们会不会? (3认同)