The*_*Who 31 connect node.js express
我想有一个中间件函数来修改响应体.
这是一个快速服务器.
就像是:
function modify(req, res, next){
res.on('send', function(){
res.body = res.body + "modified"
});
next();
}
express.use(modify);
Run Code Online (Sandbox Code Playgroud)
我不明白要听什么事.任何帮助或文档将不胜感激.
Chr*_*ini 23
你不需要听任何事件.做吧
function modify(req, res, next){
res.body = res.body + "modified";
next();
}
Run Code Online (Sandbox Code Playgroud)
而use之后你把它use的路由器.这样,在所有路线执行完毕后,您可以修改主体
express-mung就是为此而设计的.而不是事件,它只是更多的中间件.你的例子看起来像
const mung = require('express-mung')
module.exports = mung.json(body => body.modifiedBy = 'me');
Run Code Online (Sandbox Code Playgroud)
对于Express 4来说,重写响应的write方法似乎对我有用。这允许修改响应的主体,即使它是流。
app.use(function (req, res, next) {
var write = res.write;
res.write = function (chunk) {
if (~res.getHeader('Content-Type').indexOf('text/html')) {
chunk instanceof Buffer && (chunk = chunk.toString());
chunk = chunk.replace(/(<\/body>)/, "<script>alert('hi')</script>\n\n$1");
res.setHeader('Content-Length', chunk.length);
}
write.apply(this, arguments);
};
next();
});
Run Code Online (Sandbox Code Playgroud)
只需确保先注册此中间件,然后再注册其他任何可能正在修改响应的中间件。
| 归档时间: |
|
| 查看次数: |
35290 次 |
| 最近记录: |