node.js - 用于 express 请求的 before 和 after 钩子(Hook)(在任何 req 之前和任何 res 之后执行)

标签 node.js express

ExpressJS 中间件 reqresnext 有像 .on.pipe< 这样的钩子(Hook)

但我正在寻找 app.getapp.post 方法的 Hook 。

最佳答案

app.use() and middleware可用于 "before"和 '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);

这方面的一个例子是 logger middleware ,默认会在响应后追加到日志中。

只需确保在 app.router 之前使用此“中间件”,因为顺序很重要。

关于node.js - 用于 express 请求的 before 和 after 钩子(Hook)(在任何 req 之前和任何 res 之后执行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20175806/

相关文章:

node.js - MongoDB 按相关性排序

javascript - 无法从 sequelize 中的 select 语句中排除关联的字段

node.js - 从 Node.js 中的 https.Server#clientError 获取 remoteAddress

css - 使用express在node.js中添加css背景图片

node.js - 简单的 Express 3.x socket.io 聊天

Javascript Promise Chaining - 它被接受了吗?

html - 为什么我不能将我的 css 链接到我的 ejs 文件?

javascript - Npm.require 找不到 Node 模块

javascript - Node.js - 使用 P2P 的客户端到服务器 WebRTC

node.js - 在 Nodejs 中使用 Express 路由 Svelte