发送响应后,我正在调用next()
,这将转到我的帖子中间件。我想要获取我正在发送数据的数据。
res.status(200).json({username: 'abc'});
next()
现在在post中间件中我想访问该数据。
我试过res.on('data' ,function(chunk){})
但没有运气。
如果res.someProperty = "some data"
它也可以正常工作。
但我不能在json的情况下,因为我的代码已经编写,我必须使用中间件获取该数据,因为我有100个路由,我不想更改每个。因此,访问数据的唯一方法是使用中间件。
所以我的目的是在json中添加数据。像res.username或res.data.username。
App.js中间件代码
//pre-middleware
app.use(function(req, res, next){
res.on('data', function(err, data){
if(err) console.log(err);
console.log('data', data);
})
console.log('######pre status', res.statusCode);
next();
});
app.use('/', index);
//post-middleware
app.use(function(req, res, next){
console.log('###########post');
console.log( 'response', res.statusMessage);
})
index.js获取路由器代码
router.get('/middleware', function(req, res, next){
res.status(201).json({
username: 'awais'
});
next();
});
有人添加了与打印机身相关的解决方案,我提到首先我不想打印响应体,其次是那些解决方案尝试过但没有工作。