Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 14th, 2012  |  syntax: JavaScript  |  size: 1.22 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. var http = require('http');
  2. var https = require('https');
  3. var parse = require('url').parse;
  4. var fs = require('fs');
  5.  
  6. var makeRequest = function (url, cb) {
  7.   function callback(err, data) {
  8.     if (cb) {
  9.       cb(err, data);
  10.       cb = null;
  11.     }
  12.   }
  13.  
  14.   var urlInfo = parse(url);
  15.   var opt = {
  16.     path: urlInfo.path, port: urlInfo.port, host: urlInfo.hostname, headers: {'Connection': 'close'}
  17.   };
  18.  
  19.   var module = null;
  20.   if (urlInfo.protocol == 'https:') {
  21.     module = https;
  22.   } else {
  23.     module = http;
  24.   }
  25.   module.get(opt,
  26.     function (res) {
  27.       var ret = '';
  28.       res.on('data', function (data) {
  29.         ret += data.toString();
  30.       });
  31.       res.on('end', function () {
  32.         res.body = ret;
  33.         callback(null, res);
  34.       });
  35.       res.on('error', function (err) {
  36.         callback(err);
  37.       });
  38.     }).on('error', function (err) {
  39.       callback(err);
  40.     });
  41. };
  42.  
  43. var data = fs.readFileSync('data');
  44. var lines = data.toString().split("\n");
  45.  
  46. var count = lines.length;
  47.  
  48. console.time("rinnan");
  49. lines.forEach(function (id) {
  50.   makeRequest("http://google.com/" + id, function () {
  51.     count--;
  52.     if (count === 0) {
  53.       console.timeEnd("rinnan");
  54.     }
  55.   });
  56. });