如何单行登录具有响应状态的代理请求?

问题描述

使用 http-proxy-middleware 我想在 单行登录代理收到请求的事实以及目标服务器的响应状态。像这样:

[info] 将 GET /some-resource/1234 代理到目标并在 xxx 毫秒内获得状态 200。

[info] 将 GET /some-resource/5678 代理到目标并在 xxx 毫秒内获得状态 500。

我现在有了这个,但它导致每个请求至少有 2 行日志。一个用于请求,一个用于目标的响应,和/或可能一个用于错误。读取大量并发请求会变得混乱。因此,我想要一行。

export const proxyMiddleWare = createProxyMiddleware({
  target: Config.proxy.Target,changeOrigin: true,onProxyReq: (proxyReq,req) => {
    logger.info(`incoming request to proxy ${req.method} ${req.url}`);
    restream(proxyReq,req);
  },onProxyRes: (proxyRes,req,res) => {
    logger.info(`incoming response from target`);
  },onError: (err,res) => {
    logger.info(`incoming error from target`);
  },});

你会怎么做?

我正在考虑向 req 处理程序中的 onProxyReq 添加一些属性。然后在 onProxyResonError 处理程序中检查该属性,并仅在另一个尚未记录时记录。但是带有响应的错误呢?...我希望错误状态也出现在日志中,但是如果响应事件早于错误事件怎么办。

如果会有互斥的事件(也许响应和事件是?)。或者只是一个我可以监听的事件总是调用一次,无论是错误、响应还是响应错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)