我想要一个修改响应体的中间件函数。
这适用于快递服务器。
类似的东西:
function modify(req, res, next){
res.on('send', function(){
res.body = res.body + "modified"
});
next();
}
express.use(modify);
我不明白要听哪个事件。任何帮助或文档将不胜感激。
答案 0 :(得分:21)
您无需收听任何活动。做吧
function modify(req, res, next){
res.body = res.body + "modified";
next();
}
并use
在你use
路由器之后。这样,在所有路线执行完毕后,您可以修改正文
答案 1 :(得分:17)
我相信OP实际上想要在中间件处理请求后修改响应流。查看捆绑的Compress中间件实现,以获取如何完成此操作的示例。连接猴子补丁ServerResponse
原型,以便在调用header
时发出writeHead
事件,但在完成之前。
答案 2 :(得分:7)
express-mung就是为此而设计的。而不是事件,它只是更多的中间件。您的示例看起来像
const mung = require('express-mung')
module.exports = mung.json(body => body.modifiedBy = 'me');
答案 3 :(得分:2)
似乎有一个名为connect-static-transform
的模块,请查看:
https://github.com/KenPowers/connect-static-transform
连接中间件,允许在提供静态文件之前对其进行转换。
它带有示例,例如this one。