Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 NODE.JS如何返回使用ChereIO收集的数据(不返回任何内容)_Javascript_Html_Node.js_Bots - Fatal编程技术网

Javascript NODE.JS如何返回使用ChereIO收集的数据(不返回任何内容)

Javascript NODE.JS如何返回使用ChereIO收集的数据(不返回任何内容),javascript,html,node.js,bots,Javascript,Html,Node.js,Bots,我正在使用Node.js制作聊天机器人。我使用cheerio从html中提取信息并发送给用户。我可以从控制台上刮取数据并打印出来,但不能将该信息返回到变量。请帮忙 --解析部分-- const cheerio=require(“cheerio”), 请求=要求(“请求”); const init_url=”https://stu.dje.go.kr/sts_sci_md01_001.do?schulCode=G100000208&schulCrseScCode=4&schulKndScCode=

我正在使用Node.js制作聊天机器人。我使用cheerio从html中提取信息并发送给用户。我可以从控制台上刮取数据并打印出来,但不能将该信息返回到变量。请帮忙

--解析部分--
const cheerio=require(“cheerio”),
请求=要求(“请求”);
const init_url=”https://stu.dje.go.kr/sts_sci_md01_001.do?schulCode=G100000208&schulCrseScCode=4&schulKndScCode=04&schMmealScCode=2";
常量MealParser={};
MealParser.parse=()=>{
console.log(“”+init_url);
返回doRequest(makeURL(),函数(err,data){
控制台日志(数据);
返回数据;
});
}
函数doRequest(url,回调){
请求(url、函数(err、resp、html){
变量列表=[“初始数组”];
如果(!err){
const$=cheerio.load(html);
$('.tbl_第3类:包含(“중식")').父项().children().each(函数(){
list.push($(this.text());
});
返回回调(空,列表);
}
});
}
函数makeURL(){
var result_url=init_url;
返回结果url;
}

module.exports=MealParser;
您的回调正在返回一个值,我认为您应该研究回调是如何工作的

如果将基于回调的函数转换为承诺,则可以执行以下操作:

MealParser.parse = () => {
  console.log(''+init_url);
  return doRequest(makeURL())
  .then(
    data=>{
      console.log(data);
      return data;
    },
    error=>console.error(error)
  )
}

function doRequest(url,callback){
  return new Promise(
    (resolve,reject)=>
      request(url, function(err, resp, html) {
        const list = ["initial array"];
        if(err){
          reject(err);
        }else{
          const $ = cheerio.load(html);
          $('.tbl_type3 th:contains("중식")').parent().children().each(function () {
            list.push($(this).text());
          });
          // return callback(null,list);//no use returning anything from a callback
          resolve(list);
        }
      })
  );
}