在node.js http响应结束时运行清理代码

age*_*t-j 2 node.js express

  @app = express.createServer()
  @app.use express.bodyParser()
Run Code Online (Sandbox Code Playgroud)

在HTTP请求/响应结束时,我想执行一个操作(关闭数据库连接).这最好发生在响应到达客户端之后,因此客户端不等待它,但如果它发生在内联,我总是可以进行process.nextTick.

如何在响应结束时注册回调?

Mik*_*ier 7

HTTP响应是WritableStream.当流关闭时,会发出一个完成事件.因此听取它的诀窍是:

res.on('finish', function() {
    console.log(res._headers);
});
Run Code Online (Sandbox Code Playgroud)

更加灵活.可以放在中间件或资源处理程序中.