【问题标题】:Modify node-http-proxy request body修改 node-http-proxy 请求体
【发布时间】:2018-08-22 18:00:51
【问题描述】:

我正在使用node-http-proxy 尝试在我的节点/express 网络服务器中代理请求。我正在尝试将正文附加到路由级别的特定请求,但我得到的响应表明 req.body 不存在。

const proxy = httpProxy.createProxyServer({
    changeOrigin: true,
    target: process.env.API_URL,
    port: 80
});


server.post('/api/login_check', (req, res) => {
    req.url = req.url.replace('/api', '');
    req.headers['Content-Type'] = 'application/json';
    req.headers['accept'] = 'application/json';
    req.body = JSON.stringify({
        username: process.env.USERNAME,
        password: process.env.PASSWORD
    });
    proxy.web(req, res);
});

这可以在路由级别使用node-http-proxy 进行吗?

【问题讨论】:

    标签: node.js express node-http-proxy


    【解决方案1】:

    如果我理解正确的话。

    • 只要您传递 req 和 res 对象,proxy.web 就可以在路由级别上工作
    • 您可以更改代理事件传入请求的正文

    proxy.on('proxyReq', function(proxyReq, req, res, options) {
      //her you can create condition identifying your path
      if(req.body && req.url == "/user" && req.method=="POST"){
        let bodyData = JSON.stringify(req.body);
        proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
        // Stream the content
        proxyReq.write(bodyData);
    
      }
    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      • 1970-01-01
      相关资源
      最近更新 更多