gpt4 book ai didi

node.js - 在 Nodejs 应用程序中,如何在 Express 方法中发出 HTTP 客户端请求

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

当浏览器或 curl 客户端调用我的 node express 应用程序时,我想从外部网站获取 JSON 数据并返回它,但是尽管看到嵌套的 http 调用将 JSON 数据返回到我正在努力的 express 服务器让 JSON 返回调用浏览器 - 我该怎么做?

这是带有 curl 响应的当前测试应用程序代码:

var http = require('http');
var app = require('express')();

app.get('/', function (req, res) {

var str = '';

var options = {
host: 'jsonplaceholder.typicode.com',
path: '/posts/1'
};

callback = function(response) {
response.on('data', function (chunk) {
str += chunk;
});

response.on('end', function () {
console.log(str);
});
}

var req = http.request(options, callback);

res.send(str);
req.end();
});

app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});

这是 CURL localhost:3000 的结果(没有返回正文数据): enter image description here

服务器端控制台日志显示已收到 http 请求数据: enter image description here

感谢所有建议/指点!

最佳答案

作为替代方案(m-a-r-c-e-l-i-n-o 提供的答案可以正常工作),您可以使用 streams 来缩短代码(并节省一些内存)。由 Express 和 http.request() 提供,如下所示:

app.get('/', function(req, res) {
http.request('http://jsonplaceholder.typicode.com/posts/1', function(response) {
response.pipe(res);
}).on('error', function(e) {
res.sendStatus(500);
}).end();
});

关于node.js - 在 Nodejs 应用程序中,如何在 Express 方法中发出 HTTP 客户端请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37632025/

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