Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.Js / Express – 简单的中间件,输出前几个响应字符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
对于日志记录/调试,我想在发送到浏览器之前输出响应的前100个字符左右.我可以用中间件和响应对象做一些简单的事情吗?

理想情况下它是这样的

app.use(function(req,res,next) {
    console.log('Response snippet: '+((res.body || '').substr(0,100)));
    next();
});

除了响应没有正文,我无法弄清楚当前正在发回的主体在哪里通过.

更新:

彼得的回答有效,我想我会把我的中间件代码在这里,以便为未来的观众点击一下:

App.use(function(req,next) {
    var end = res.end;
    res.end = function(chunk,encoding){
        res.end = end;
        if (chunk) {
            console.log(chunk);
        }
        res.end(chunk,encoding);
    };
    next();
});

解决方法

因此,您需要挂钩响应输出API,这在中间件中并不像挂钩请求处理那样简单.最好的例子是 connect’s built-in logger middleware.它基本上是对req.end方法进行修补,并将数据转发到它的流,然后继续调用真正的req.end函数.您需要遵循此模式,这应该适用于非流式响应.

该模式可能最终只会为您提供最后一块数据(对于流式响应).如果是这样,你只需要修补res.write而不是res.end,你就可以访问第一个块.一旦你记录了第一个块,就取消猴子补丁res.write.

大佬总结

以上是大佬教程为你收集整理的Node.Js / Express – 简单的中间件,输出前几个响应字符全部内容,希望文章能够帮你解决Node.Js / Express – 简单的中间件,输出前几个响应字符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。