我想在返回之前修改响应正文,我已经使用了来自this answer
的解决方案但它没有用,这是我的代码:
app.js
function modify(req, res, next) {
var json = res.json;
console.log("step 1");
res.json = function(data) {
console.log("step 2");
json.call(this, "modified");
};
next();
}
app.use(modify);
路由器中的:
router.get('/',(req,res,next)=>{
res.json('Welcome')
next()
})
中间件已被调用,但覆盖功能(步骤2)从未被调用,请告诉我代码有什么问题,谢谢!
答案 0 :(得分:0)
使用next()仅传递给下一个函数
router.get('/',(req,res,next)=>{
if(wantToStop=='true'){
res.json('Welcome')
}else{
next()
}
})