javascript - express.js - 如何拦截 response.send()/response.json()

标签 javascript node.js express

假设我有多个调用 response.send(someData) 的地方。现在我想创建一个全局拦截器,我可以在其中捕获所有 .send 方法并对 someData 进行一些更改。 express.js 有什么办法吗? (钩子(Hook)、监听器、拦截器……)?

最佳答案

您可以如下定义一个中间件(取自并修改自 answer )

function modifyResponseBody(req, res, next) {
    var oldSend = res.send;

    res.send = function(data){
        // arguments[0] (or `data`) contains the response body
        arguments[0] = "modified : " + arguments[0];
        oldSend.apply(res, arguments);
    }
    next();
}

app.use(modifyResponseBody);

关于javascript - express.js - 如何拦截 response.send()/response.json(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33732509/

相关文章:

javascript - 如何创建注销用户并从 mongodb 数据库中删除的路由

javascript - 正则表达式效率,在 html 中选择文本的更好方法

javascript - 如何将 Ajax 响应转换为字符串以与 JS 字符串进行比较

javascript - 安全地处理 Node 中的错误 JSON.parse()

node.js - Docker 与 Node.js 和 Express.js

node.js - 如何从 Passport.js 闪现消息?

javascript - 如何在 typescript-node 项目中配置 jest-mongodb(@shelf/jest-mongodb)?

javascript - Post 不发送数据到 mySql 表

javascript - node-mysql 在查询中使用数组

node.js - Express.js : How to serve one file for the default "/" route, 然后使用express.static 其余部分?