Никак не пойму как работают ассинхронные вызовы в node.js.
тыц вот тут очень хорошо под Javascript расписано, но в Nodejs я такого не нашел. Тока библиотеки async,q, и пр. у которых нет на русском норм доки.
var express = require('express');
var cheerio = require('cheerio')
var request = require('request');
var app = express();
app.get('/', function(req, res){
var z = request('http://xxx.ru', function (error, response, html,callback) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var parsedResults = [];
$('.col-1 .col-first').each(function(i, element){
var buf = $(this);
var zagolovok = buf.children(0).children().children().eq(0).text();
var previewText = buf.children(2).children().eq(0).text();
var url = buf.children(0).children().children().eq(0).attr('href');
var picUrl = buf.children(1).children().eq(0).children().children().eq(0).attr('src');
// download preview
var metadata = {
zagolovok:zagolovok,
previewText:previewText,
url:url,
picUrl:picUrl
};
parsedResults.push(metadata);
console.log(parsedResults);
});
callback(parsedResults.toString());
};
});
res.end;
});
app.listen(3000);