如何将响应存储到变量nodejs请求模块中



我正试图通过请求模块存储使用nodejs发出的http请求的响应,但问题是我无法在请求完成后获得它

如何添加

以下是我迄今为止尝试的

尝试使用var而不是let试着把它传递给一个函数,这样我以后就可以使用它了,但运气不好

这是我的代码,任何人都可以帮助新的nodejs吗?这就是为什么可能会有一个小问题

var request = require('request')
var response
function sort(body) {
for (var i = 0; i < body.length; i++) {
body[i] = body[i].replace("r", "");
}
response = body
return response
}
request.get(
"https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&country=all&ssl=all&anonymity=all",
(err, res, body) => {
if (err) {
return console.log(err);
}
body = body.split("n");
sort(body);
}
);
console.log(response)

在这篇文章中,我从这个api中获取代理,并试图将它们存储在一个名为响应的变量中

var request = require("request");
var response;
async function sort(body) {
await body.split("n");
response = await body;
console.log(response); // this console log show you after function process is done. 
return response;
}
request.get(
"https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&country=all&ssl=all&anonymity=all",
(err, res, body) => {
if (err) {
return console.log(err);
}
sort(body);
}
);
// console.log(response); //This console log runs before the function still on process, so that's why it gives you undefined.
  • 试试这个代码,它运行得很好,我刚刚测试过
  • 将控制台日志放入函数中,这样您就可以看到结果
  • 您放置的console.log实际上是在处理数据之前运行的,所以这就是为什么您得到";未定义">
  • 实际上,您将在排序函数完成处理后获得数据

最新更新