Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将响应发送到客户端后执行的express/connect中间件_Node.js_Express_Connect_Middleware - Fatal编程技术网

Node.js 将响应发送到客户端后执行的express/connect中间件

Node.js 将响应发送到客户端后执行的express/connect中间件,node.js,express,connect,middleware,Node.js,Express,Connect,Middleware,是否可以编写一个中间件,在将响应发送到客户端之后执行,或者在将响应发送到客户端之前处理并调用请求之后执行?查看是否绑定到req.on('end',function(){…})将适用于您。pauljz给出了基本方法,但为了进一步扩展,这里是一个中间件示例 module.exports = function() { return function(req, res, next) { req.on("end", function() { // some code to be e

是否可以编写一个中间件,在将响应发送到客户端之后执行,或者在将响应发送到客户端之前处理并调用请求之后执行?

查看是否绑定到
req.on('end',function(){…})
将适用于您。

pauljz给出了基本方法,但为了进一步扩展,这里是一个中间件示例

module.exports = function() {
  return function(req, res, next) {
    req.on("end", function() {
      // some code to be executed after another middleware
      // does some stuff
    });
    next(); // move onto next middleware
  }
}
在主应用程序中

expressApp.use(require("./doneMiddleware"));
expressApp.use(express.logger());
expressApp.use(express.static.....

如果我理解正确,当客户端完成向服务器发送请求/数据时,将触发此事件。但是我想要的是,在调用response.render或response.redirect等之后,应该执行中间件。不,在完成整个请求(包括发送响应)后,将发出此事件。只要render/redirect call response.end,关联的请求将发出end。@SelvarajMA以下方法可能更好:。如果我理解正确,当客户端完成向服务器发送请求/数据时,将触发此事件。但是我想要的是,在调用response.render或response.redirect等之后,应该执行中间件。