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 не удается передать все переменные в функции из-за асинхронный, так как его «замедлить»?
Из того, что я понимаю, 'HTTP: // example.com' является хозяином. – AdityaParab
Я думаю, если вы вызываете функцию 'getPage' как' getPage ('http://example.com', '/', function (text, status) {'будет работать нормально – AdityaParab
Кроме того, вы будете иметь для обновления определения функции 'getPage' как' var getPage = function (host, URL, callback) {' – AdityaParab