2011-06-09 21 views
20

के साथ यूआरएल से सामग्री पढ़ना मैं नोड.जेएस के साथ एक यूआरएल से सामग्री को पढ़ने की कोशिश कर रहा हूं, लेकिन मुझे लगता है कि बाइट्स का एक गुच्छा है। मैं स्पष्ट रूप से कुछ गलत कर रहा हूं लेकिन मुझे यकीन नहीं है कि क्या। यह कोड मेरे पास वर्तमान में है:Node.js

var http = require('http'); 

var client = http.createClient(80, "google.com"); 
request = client.request(); 
request.on('response', function(res) { 
    res.on('data', function(data) { 
     console.log(data); 
    }); 
}); 
request.end(); 

किसी भी अंतर्दृष्टि की सराहना की जाएगी।

उत्तर

24

कोशिश ग्राहक की त्रुटि घटना पर का उपयोग कर इस मुद्दे को खोजने के लिए।

var http = require('http'); 

var options = { 
    host: 'google.com', 
    path: '/' 
} 
var request = http.request(options, function (res) { 
    var data = ''; 
    res.on('data', function (chunk) { 
     data += chunk; 
    }); 
    res.on('end', function() { 
     console.log(data); 

    }); 
}); 
request.on('error', function (e) { 
    console.log(e.message); 
}); 
request.end(); 
7

डेटा ऑब्जेक्ट बाइट्स का बफर है। सीधे शब्दों में .toString() फोन मानव पठनीय कोड प्राप्त करने के:

console.log(data.toString()); 

संदर्भ: Node.js buffers

+1

एक अन्य विकल्प 'console.log है (JSON.stringify (डेटा));' अन्यथा, मैं 'पाया है NPM eyes' स्थापित एक उपयोगी होने के लिए इसके 'इंस्पेक्टर() 'के लिए उपकरण। – Dave

2

HTTP और HTTPS:

const getScript = (url) => { 
    return new Promise((resolve, reject) => { 
     const http  = require('http'), 
       https  = require('https'); 

     let client = http; 

     if (url.toString().indexOf("https") === 0) { 
      client = https; 
     } 

     client.get(url, (resp) => { 
      let data = ''; 

      // A chunk of data has been recieved. 
      resp.on('data', (chunk) => { 
       data += chunk; 
      }); 

      // The whole response has been received. Print out the result. 
      resp.on('end',() => { 
       resolve(data); 
      }); 

     }).on("error", (err) => { 
      reject(err); 
     }); 
    }); 
}; 

(async (url) => { 
    console.log(await getScript(url)); 
})('https://sidanmor.com/');