Проблема итерации объекта с PUG - PullRequest
0 голосов
/ 10 октября 2018

Я делаю внешний вызов 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 прямо здесь:

enter image description here

Я перепробовал почти все, не знаю, в чем проблема!

...