2017-11-09 11 views
0

私はサイトスクレーパーを作成しましたが、このリクエスト関数から他の関数​​で文字列を使用したいと思います。パイプの仕組みがわからないnode.jsのリクエスト関数からの戻り値を取得する方法

request(realAnswer, function (error, response, html) { 

    if (!error && response.statusCode == 200) { 
    var $ = cheerio.load(html); 
    var tree = $('.qa-answer-field'); 
    var final = tree.children().eq(1).text();//i want to use this final as a sting in other fucntion 

    } 

}).pipe(final); 

このソリューションは正常に動作しますが、私はコンソールだけで私の結果を書き込むことができます...

request(realAnswer, function (error, response, html) { 

     if (!error && response.statusCode == 200) { 
     var $ = cheerio.load(html); 
     var tree = $('.qa-answer-field'); 
     var final = tree.children().eq(1).text(); 
      if(final) 
      console.log("Response: \n"+final); 
      else 
      console.error("Response doesnt exist!"); 
     } 

    }); 

だから誰もが私の問題で私を助けることができるのでしょうか?

答えて

0
var usemepls = 'fake' 
    request(realAnswer, function (error, response, html) { 

     if (!error && response.statusCode == 200) { 
     var $ = cheerio.load(html); 
     var tree = $('.qa-answer-field'); 
     var final = tree.children().eq(1).text(); 
      if(final) 
      console.log("Response: \n"+final); 
      usemepls = final.toString() // <-- if you dont want a string just replace the .toString() 
      else 
      console.error("Response doesnt exist!"); 
     } 

    }) 

    console.log('usemepls: ' + usemepls) 

それとも

var usemepls = {} 
    request(realAnswer, function (error, response, html) { 

     if (!error && response.statusCode == 200) { 
     var $ = cheerio.load(html); 
     var tree = $('.qa-answer-field'); 
     var final = tree.children().eq(1).text(); 
      if(final) 
      console.log("Response: \n"+final); 
      usemepls.test1 = final.toString() // <-- if you dont want a string just replace the .toString() 
      else 
      console.error("Response doesnt exist!"); 
     } 

    }) 

    console.log('usemepls.test1: ' + usemepls.test1) 

のようなオブジェクトの文字列を使用するかは、あなたがのNode.js/JavaScriptの基本後ろよりになります

function function1() { 
    request(realAnswer, function (error, response, html) { 

     if (!error && response.statusCode == 200) { 
     var $ = cheerio.load(html); 
     var tree = $('.qa-answer-field'); 
     var final = tree.children().eq(1).text(); 
      if(final) 
      console.log("Response: \n"+final); 
      return final 
      else 
      console.error("Response doesnt exist!"); 
     } 

    }) 
} // function function1() { 

    console.log('final: ' + function1()) 

機能を使用することができます。それはあなたのためのすべてを簡単になります。

関連する問題