gpt4 book ai didi

node.js - 在 Node 中创建 REST API 时,如何将来自对外部网站的请求的 http 响应流式传输到原始 api 调用?

转载 作者:搜寻专家 更新时间:2023-10-31 23:47:24 27 4
gpt4 key购买 nike

所以,我正在使用 Node 创建一个 REST API,我必须创建一个路由。路由的目的:充当代理服务器并调用不同的外部网站并将它得到的响应返回给原始请求。到目前为止,我有以下代码并且可以正常工作:

app.post('/v1/something/:_id/proxy',
function(req, res, next) {
// Basically make a request call to some external website and return
// the response I get from that as my own response
var opts = {/*json containing proper uri, mehtod and json*/}
request(opts, function (error, responseNS, b) {
if(error) return callback(error)
if(!responseNS) return callback(new Error('!response'))

return res.json(responseNS.body)
})
}
)

我的问题是,如何流式传输从外部网站获得的 HTTP 响应。那样的话,我的意思是我想以流的形式获得响应,并在它以 block 的形式出现时立即返回它。这可能吗?

最佳答案

您可以通过管道将来自外部源的传入响应直接传递给您的应用发送给浏览器的响应,如下所示:

app.post('/v1/something/:_id/proxy',
function(req, res, next) {
// Basically make a request call to some external website and return
// the response I get from that as my own response
var opts = {/*json containing proper uri, mehtod and json*/}
request(opts, function (error, responseNS, b) {
if(error) return callback(error)
if(!responseNS) return callback(new Error('!response'))

return res.json(responseNS.body)
}).pipe(res);
});

关于node.js - 在 Node 中创建 REST API 时,如何将来自对外部网站的请求的 http 响应流式传输到原始 api 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994908/

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