假设我有多个地方可以调用 response.send(someData)
。现在我想创建一个全局拦截器,我在其中捕获所有 .send
方法并对 someData
进行一些更改。 express.js 有什么办法吗? (钩子、监听器、拦截器……)?
原文由 pleerock 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我有多个地方可以调用 response.send(someData)
。现在我想创建一个全局拦截器,我在其中捕获所有 .send
方法并对 someData
进行一些更改。 express.js 有什么办法吗? (钩子、监听器、拦截器……)?
原文由 pleerock 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于那些在谷歌上发现的人,基于最佳答案:
app.use((req, res, next) => {
const oldSend = res.send
res.send = function(data) {
console.log(data) // do something with the data
res.send = oldSend // set function back to avoid the 'double-send'
return res.send(data) // just call as normal with data
}
next()
})
原文由 cpri 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
您可以如下定义中间件(从这个 答案 中获取和修改)