Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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
Javascript 如何使用NodeJS从网站获取HTML?_Javascript_Node.js - Fatal编程技术网

Javascript 如何使用NodeJS从网站获取HTML?

Javascript 如何使用NodeJS从网站获取HTML?,javascript,node.js,Javascript,Node.js,我知道这是一个非常基本的问题,但我无法让任何东西起作用。 我有一个URL列表,我需要使用NodeJS从中获取HTML 我尝试过使用Axios,但返回的响应总是未定义的。 我用post请求点击端点/processlogs,主体由日志文件(一个数组)组成 router.post(“/processlogs”),函数(req、res、next){ fileStrings=req.body.logFiles; 对于(var i=0;i{console.log(e)})你能用一个例子来说明第一点吗?@Ka

我知道这是一个非常基本的问题,但我无法让任何东西起作用。 我有一个URL列表,我需要使用NodeJS从中获取HTML

我尝试过使用Axios,但返回的响应总是未定义的。 我用post请求点击端点
/processlogs
,主体由日志文件(一个数组)组成

router.post(“/processlogs”),函数(req、res、next){
fileStrings=req.body.logFiles;
对于(var i=0;i
示例文件字符串的格式为
https://amazon-artifacts.s3.ap-south-1.amazonaws.com/q-120/log1.txt


如何将此过程并行化,以便一次对多个文件执行相同的任务?

我可以想到两种方法:

  • 第一种方法是使用
    ES6
    promises(promise.all)和异步/等待特性,将
    fileStrings
    数组分块成
    n
    块。这是一个基本的方法,你必须处理很多情况
    • 这是我所想到的流程的一般概念:
    异步函数handleChunk(块){
    常数TobFelfilled=[];
    for(块的常量文件){
    TOBFELFILLED.push(axios.get(file));//用每个文件的逻辑替换axios.get
    }
    返回承诺。全部(待填写);
    }
    异步函数main(){
    试一试{
    const fileStrings=req.body.logfiles;
    对于(i;imain().then(()=>{console.log('done')}).catch((e)=>{console.log(e)})你能用一个例子来说明第一点吗?@KaranSingh,这个想法清楚吗,或者我应该进一步解释吗?。希望有帮助:)
    
    router.post("/process-logs", function (req, res, next) {
      fileStrings = req.body.logFiles;
    
      for (var i = 0; i < fileStrings.length; i++) {
        axios(fileStrings[i]).then(function (response) {
          console.log(response.body);
        });  
      }
    
      res.send("done");
    });