簡體   English   中英

nodejs api不轉發從其他服務收到的響應

[英]nodejs api does not forward response which received from another service

我開發了一個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);
        }
    })
  });

為了表達

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

我找到了解決此問題的方法。 在選項中,我必須添加編碼:null,否則主體將轉換為字符串。 當正文轉換為字符串時,文件將被破壞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM