nodejs api 不转发从另一个服务收到的响应
nodejs api does not forward response which received from another service
我开发了一个 nodejs api 来监听 http 请求,然后添加一些 header 值并将其转发到不同服务器中的另一个 Restful 服务。当响应 returns 时,我会将相同的响应转发给请求者,而不做任何修改。所以基本上这个 api 将用作转发代理。
我使用下面的代码将响应转发给请求者,它 returns 数据但是我们的一个响应包含一个附件(pdf 文件),它将始终作为空 file/corrupted 接收到请求者。有人可以帮我解决这个问题吗?
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,否则正文将被转换为字符串。当正文转换为字符串时,文件将被损坏。
我开发了一个 nodejs api 来监听 http 请求,然后添加一些 header 值并将其转发到不同服务器中的另一个 Restful 服务。当响应 returns 时,我会将相同的响应转发给请求者,而不做任何修改。所以基本上这个 api 将用作转发代理。
我使用下面的代码将响应转发给请求者,它 returns 数据但是我们的一个响应包含一个附件(pdf 文件),它将始终作为空 file/corrupted 接收到请求者。有人可以帮我解决这个问题吗?
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,否则正文将被转换为字符串。当正文转换为字符串时,文件将被损坏。