Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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中使用动态参数串联运行函数_Javascript_Node.js_Sync_Cheerio - Fatal编程技术网

Javascript 在nodeJs中使用动态参数串联运行函数

Javascript 在nodeJs中使用动态参数串联运行函数,javascript,node.js,sync,cheerio,Javascript,Node.js,Sync,Cheerio,目标:(已解决:更新以下工作代码) 创建URL数组 创建一个函数,该函数接受单个url,向该url发出请求,并将一些数据写入文件 对数组中的每个url连续多次运行上述函数 节点依赖项:请求、IO、异步、fs 以下是我到目前为止的情况: //load dependencies var request = require("request"), cheerio = require("cheerio"), fs = require('fs'), async = require(

目标:(已解决:更新以下工作代码)

  • 创建URL数组
  • 创建一个函数,该函数接受单个url,向该url发出请求,并将一些数据写入文件
  • 对数组中的每个url连续多次运行上述函数 节点依赖项:请求、IO、异步、fs

    以下是我到目前为止的情况:

    //load dependencies
    var request = require("request"),
        cheerio = require("cheerio"),
        fs = require('fs'),
        async = require('async'),
        wstream = fs.createWriteStream('./model/data.txt');
    
    
    //create url array
    var arr = [];
    for (var i = 0; i < 10; i++){
        arr.push('http://www.test.com/' + i)
    }
    
    //function that gets data from url and creates write stream
    function getUrlData(url, callback){
        request(url, function (error, response, body) {
            if (!error && response.statusCode == 200) {
                var $ = cheerio.load(body);
                var data = $('h1').html();
                wstream.write(data);
                callback();
            }
        });
    }
    
    //close write stream
    function endStream(){
        wstream.end();
    }
    
    //updated working version
    async.eachSeries(arr,getUrlData,endStream);
    
    //加载依赖项
    var请求=要求(“请求”),
    cheerio=需要(“cheerio”),
    fs=需要('fs'),
    async=require('async'),
    wstream=fs.createWriteStream('./model/data.txt');
    //创建url数组
    var-arr=[];
    对于(变量i=0;i<10;i++){
    arr.push('http://www.test.com/"(i)
    }
    //从url获取数据并创建写入流的函数
    函数getUrlData(url,回调){
    请求(url、函数(错误、响应、正文){
    如果(!error&&response.statusCode==200){
    var$=总负荷(车身);
    var data=$('h1').html();
    wstream.write(数据);
    回调();
    }
    });
    }
    //关闭写入流
    函数endStream(){
    wstream.end();
    }
    //更新的工作版本
    eachSeries(arr、getUrlData、endStream);
    
    由于希望按顺序执行getUrlData,因此需要向getUrlData添加回调:

    function getUrlData(url, callback){
        request(url, function (error, response, body) {
            if (!error && response.statusCode == 200) {
                var $ = cheerio.load(body);
                var data = $('h1').html();
                wstream.write(data);
                callback();
            }
            callback(error);
        });
    }
    
    然后使用每个系列:

    async.eachSeries(arr, getUrlData, endStream);