Я пытаюсь сделать функцию на моем сервере узлов, которая использует cheerio для очистки веб-страниц, проблема в том, что мои функции не работают должным образом,
Контроллер:
class ScrapperController {
static async scrapDwelling(req, res, next) {
try {
const dwelling = await ScrapperService.getDwelling(req.params.url);
console.log(dwelling);
res.send({dwelling});
} catch (err) {
next(err);
}
}
}
тогда мой сервис:
static async getDwelling(url) {
const dwelling = {};
await request(`https://www.zonaprop.com.ar/propiedades/${url}`, (err, resp, html) => {
const $ = cheerio.load(html);
dwelling.type = $('.price-operation', '#article-container').text();
dwelling.price = $('.price-items', '#article-container').text();
dwelling.description = $('.section-description', '#article-container').text();
dwelling.title = $('.title-type-sup > b').text();
dwelling.location = $('.title-location > b').text();
const coordinatesHelper = ($('.static-map', '#article-map').attr('src'));
const coordinates = coordinatesHelper.substring(
coordinatesHelper.lastIndexOf('markers=') + 8,
coordinatesHelper.lastIndexOf('&channel')
);
dwelling.coordinates = coordinates;
console.log($('#tab-foto-flickity').find('img').length);
return dwelling;
});
return dwelling;
}
когда вы видите консольные журналы, по какой-то причине функция сначала возвращается, а затем выполняет код. я получаю это в консоли:
} {
GET /public-api/scrapper/42998731.html 200 6,559 мс - 15
36