gpt4 book ai didi

node.js - 将文件从 Api 服务器发送到 NodeJs 到浏览器

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:41 24 4
gpt4 key购买 nike

我有一个 API 服务器和 NodeJs 服务器,当请求文件时,NodeJs 会将请求重定向到 API 服务器

API 服务器将文件作为原始数据发送到 NodeJsNodejs 将文件重定向到浏览器

但是当我使用wire shark检查网络数据时,浏览器收到的数据包不是来自API服务器的原始数据包(适用于文本文件,但不适用于图像、视频、pdf、doc等)

router.get('/GetCaseSupportDocument', function (req, res) {

var MyJsonData = {
DocId:parseInt(req.query.DocId) || 0
};

request({
url: 'http://somedomain/someurl', //URL to hit
method: 'POST',
json: MyJsonData

}, function (error, response, body) {
if (error) {
res.status(200).send('Failed');
} else {
res.status(200).send(body);
}
})

});

谁能告诉我为什么它在 NodeJs 和浏览器之间发生变化吗?对于这种传输方式有更好的解决方案吗?

找到解决方案后更新。这有效

    router.get('/GetCaseSupportDocument', function (req, res) {

var MyJsonData = {
DocId:parseInt(req.query.DocId) || 0

};

request({
url: Url.CaseService + 'GetCaseSupportDocument', //URL to hit
method: 'POST',
json: MyJsonData
}).pipe(res);

})

最佳答案

有一个使用流的简单代理,您可以尝试:

router.get('/GetCaseSupportDocument', function (req, res) {
var MyJsonData = {
DocId: parseInt(req.query.DocId) || 0
};

// updated the response
request({
url: 'http://somedomain/someurl', //URL to hit
method: 'POST',
json: MyJsonData
}).pipe(res);

});

有关代理的更多详细信息,您可以在请求文档https://github.com/request/request中找到

关于node.js - 将文件从 Api 服务器发送到 NodeJs 到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45436905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com