Невозможно получить значение ключа из объекта с помощью ejs - PullRequest
0 голосов
/ 09 июня 2019

В настоящее время учусь экспрессу, но у меня возникают проблемы с получением значения, и я не уверен, что именно я делаю неправильно.Любая помощь приветствуется

Я не могу получить значения ключей, которые предоставляются представлению через объект из файла JSON.

Я могу отобразить 1 значение ключа totalPrice, но я 'Я не могу получить идентификатор продукта или кол-во значений.

Я пробовал несколько вещей, и в режиме отладки кода против я вижу, что cart.products в моем контроллере разрешает быть массивом с 2 объектами.

Я могу отобразить <%= cart %> с выходами [object Object], [object Object]

cart.json

{  
   "products":[  
      {  
         "id":"7275",
         "qty":2
      },
      {  
         "id":"5697",
         "qty":2
      }
   ],
   "totalPrice":159.96
}

cart.js (контроллер)

exports.getCart = (req, res, next) => {
    Cart.fetchAll((cart) => {
        res.render('shop/cart', {
            pageTitle: 'Cart',
            path: '/cart',
            cart: cart.products,
            totalPrice: cart.totalPrice
    });  
    })
}

(просмотр) рендеринга с использованием движка ejs, чтобы получитьtotalPrice работает нормально

<p>Total price: <b>£<%= totalPrice %></p></b>

, но по какой-то причине я не могу получить id или qty, даже если выводятся 2 деления.так что он обнаружил, что в корзине 2 товара, но не удалось получить значение ключа для id или кол-во

<% for (let product in cart) { %>
<div>
   <%= product.id %>
   <%= product.qty %>
</div>
<% } %>

1 Ответ

0 голосов
/ 09 июня 2019

cart - это массив объектов, а не сам объект.Попробуйте это:

<% cart.forEach(function(product) { %>
<div>
   <%= product.id %>
   <%= product.qty %>
</div>
<% }); %>
...