В настоящее время я использую метод replace
в функции async / await и получаю журнал ошибок в своей консоли. Я делаю некоторую очистку от YellowPages, и я получил то, что хотел до сих пор, но при попытке очистить данные электронной почты, которые выглядят как строка 'mailto:johndoe@test.com'
, удалив "mailto:"
, я получаю следующую ошибку :
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'replace' of undefined
at Node.<anonymous> (/Users/aeum3893/Documents/test_scrapping/yellowpages_scraping/index.js:20:40)
(node:25401) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 8)
А это фрагмент кода
const getCompanies = async () => {
try {
const html = await rp(baseURL + searchURL);
const businessMap = cheerio('a.business-name', html).map(async (i, e) => {
const link = baseURL + e.attribs.href;
const innerHtml = await rp(link);
const emailAddress = cheerio('a.email-business', innerHtml).prop('href')
const email = emailAddress.replace(/mailto:/, '');
const name = e.children[0].data || cheerio('h1', innerHtml).text();
const phone = cheerio('p.phone', innerHtml).text();
const metadata = {
emailAddress,
link,
name,
phone,
}
parsedResults.push(metadata)
})
Как только я удаляю метод замены, все работает отлично.
Я ценю вашу помощь, спасибо!