nodejs api不转发从其他服务收到的响应

时间:2019-02-20 11:26:31

标签: node.js express request httprequest response

我开发了一个nodejs api来侦听http请求,然后添加一些标头值并将其转发到其他服务器中的另一个Restful服务。当响应返回时,我将不做任何修改就将相同的响应转发给请求者。因此该api基本上可以用作转发代理。

我使用下面的代码将响应转发给请求者,它返回数据,但是我们的响应之一包括附件(pdf文件),该附件将始终以空文件/损坏的形式接收给请求者。有人可以帮我解决这个问题吗?

app.use('/', function(req, res, next){

    var request = require('request');

    var url={{someurl}} 

    var option = {
        method:req.method,
        json:data,
        headers:{
           "Content-Type": "application/json",
           "Cookie":result
        };
    };
    request(URL, option, function (error, response, body) {   

        if (error) {
            res.status("500").send(error);
            res.end(err);
        }else{            
            if (req.method=='GET'){
                res.set(response.headers);
            }

            res.status(response.statusCode).send(body);
            res.end(response);
        }
    })
  });

2 个答案:

答案 0 :(得分:0)

快递

const express = require('express');
let router = express.Router();
router.get('/{{someurl}}', (req,res)=>{
  // do your work
  res.send({{any response}});
});

答案 1 :(得分:0)

我找到了解决此问题的方法。在选项中,我必须添加编码:null,否则主体将转换为字符串。当正文转换为字符串时,文件将被破坏。