Я делаю внешний вызов API через запрос POST и отправляю данные для обработки в файле PUG.
Это мой маршрут:
app.post('/search', (req, res) => {
request(`${url}${req.body.term}`, (error, response, body) => {
if (!error && response.statusCode === 200) {
const data = JSON.parse(body);
const listData = data.itemListElement;
console.log(listData[0].result.image.contentUrl);
res.render('results', {
searchData: listData,
searchTerm: req.body.term
});
} else {
console.log(error);
}
});
});
Это мой текущий файл PUG:
html
head
title= Results
link(rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous")
body
table(class="table table-striped")
thead(class="thead-dark")
tr
th(scope="col") Result for #{searchTerm}
th(scope="col") Description
th(scope="col") Image
tbody
each item in searchData
tr
td(scope="row")= item.result.name
td(scope="row")= item.result.description
td(scope="row")= JSON.stringify(item.result.image)
У меня возникли проблемы при попытке "захватить" ссылку на изображение, чтобыЯ могу отобразить это в третьем столбце моей таблицы.
Когда я console.log ключ от объекта, я могу получить его, и я вижу ссылку на моем терминале.Однако при попытке отобразить ссылку на мой файл PUG появляется ошибка Cannot read property 'contentUrl' of undefined
.
Ссылка на изображение находится во вложенном массиве объектов:
listData[0].result.image.contentUrl
Где listData
- массив, содержащий все объекты.
И когда я добавляю console.log(listData[0].result.image.contentUrl)
в маршрут, я получаю ссылку, показанную в моем терминале
В приведенном здесь коде я структурировал объект, чтобы увидеть, что получилось, и вы можете увидетьURL прямо здесь:
Я перепробовал почти все, не знаю, в чем проблема!