2015-09-10 2 views
0

Этот код возвращает всю страницу, и все в порядке, но мне нужно вернуть его в другую функцию.Nodejs возвращает не весь ответ

var host = 'http://example.com'; 
    var getPage = function(URL, callback) { 
     var request = http.request({ "host": host, "path": URL, "port": 80 }, function(response) { 
      var str = ''; 
      response.on('data', function(chunk) { 
       str += chunk; 
      }); 
      response.on('end', function() { 
       console.log(str); 
      }); 
     }).on('error', function(err) { 
      console.log(err); 
      callback(err, 303); 
     }).end(); 
    }; 

    getPage('/page/', function(text, status) { 
    //do something 
    }); 

Этот код возвращает, возможно, 50% страницы.

var host = 'http://example.com'; 
    var getPage = function(URL, callback) { 
     var request = http.request({ "host": host, "path": URL, "port": 80 }, function(response) { 
      var str = ''; 
      response.on('data', function(chunk) { 
       str += chunk; 
      }); 
      response.on('end', function() { 
       callback(str, response.statusCode); 
      }); 
     }).on('error', function(err) { 
      console.log(err); 
      callback(err, 303); 
     }).end(); 
    }; 

    getPage('/page/', function(text, status) { 
     parsePage(text, URL); 
    }); 

Насколько я понимаю, nodejs не удается передать все переменные в функции из-за асинхронный, так как его «замедлить»?

+0

Из того, что я понимаю, 'HTTP: // example.com' является хозяином. – AdityaParab

+0

Я думаю, если вы вызываете функцию 'getPage' как' getPage ('http://example.com', '/', function (text, status) {'будет работать нормально – AdityaParab

+0

Кроме того, вы будете иметь для обновления определения функции 'getPage' как' var getPage = function (host, URL, callback) {' – AdityaParab

ответ

0

Моей проблема заключается в ссылке:

Если я перейдите по ссылке: «/ razgruzochnye-кинозал і» Я получил сообщение об ошибке, becouse последнего символа в ссылке не является английским символ.

Решение:

URL = URL.split("/").map(function(val) { return encodeURI(val); }).join('/'); 
Смежные вопросы