Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将响应存储到变量nodejs请求模块中_Node.js_Arrays_Node Modules_Node Request_Nodejs Server - Fatal编程技术网

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

Node.js 如何将响应存储到变量nodejs请求模块中,node.js,arrays,node-modules,node-request,nodejs-server,Node.js,Arrays,Node Modules,Node Request,Nodejs Server,我试图通过请求模块存储使用nodejs发出的http请求的响应,但问题是我无法在请求完成后访问它,我们可以在回调后说,更详细的信息 我怎样才能添加它 这是我到现在为止所做的 尝试使用var而不是let 尝试将其传递给函数,以便稍后使用,但没有成功 这是我的代码,任何人都可以帮助nodejs新手,这就是为什么可能是一个noob问题 var request = require('request') var response function sort(body) { for (var

我试图通过请求模块存储使用nodejs发出的http请求的响应,但问题是我无法在请求完成后访问它,我们可以在回调后说,更详细的信息

我怎样才能添加它

这是我到现在为止所做的

尝试使用var而不是let 尝试将其传递给函数,以便稍后使用,但没有成功

这是我的代码,任何人都可以帮助nodejs新手,这就是为什么可能是一个noob问题

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)
var request=require('request'))
var响应
函数排序(正文){
对于(变量i=0;i{
如果(错误){
返回console.log(err);
}
body=body.split(“\n”);
排序(体);
}
);
console.log(响应)
在本文中,我从这个api获取代理,并尝试将它们存储在一个名为response的变量中

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实际上是在处理数据之前运行的,所以这就是为什么会出现“未定义”的情况
  • 实际上,在完成排序函数的处理后,您将获得数据