Попытка выставить экспресс здесь. Я использую модуль экспресс-сессии, и у меня не было проблем, когда я использую переменные сеанса, которые являются объектами или строками. Тем не менее, я просто не могу заставить массивы работать. Я использую технику корзины в качестве лабораторной крысы. Вот код, который вызывает у меня проблемы:Препятствованные переменные экспресс-сессии в виде массива
router.post('/', function(req, res) {
if (req.body.action == 'Add to Cart') {
var cart = req.session.cart = [];
cart.push(req.body.itemId);
res.redirect('/');
}
});
router.get('/', function(req, res) {
if (req.session.cart) {
var itemsInCart = req.session.cart.length;
}
res.render('index', {
title: 'Shopping Spree',
itemsInCart: itemsInCart,
products: [
{id: 1, item: 'Boeing 747', price: 4500},
{id: 2, item: 'Luxury Yacht', price: 200},
{id: 3, item: 'Mercedes AMG GT', price: 15000},
{id: 4, item: 'Apple iPhone 6', price: 2400},
{id: 5, item: 'Moet Hennessey', price: 5000}
]
});
});
И в представлении: index.jade
:
extends layout
block content
h2= title
p Cart(#{itemsInCart} items)
a(href="/cart") [VIEW CART]
table
thead
tr
th Item
th Price
tr
tbody
- for (var i in products) {
tr
td= products[i].item
td= products[i].price
td
form(action="/", method="post")
input(type="hidden", name="itemId" value="#{products[i].id}")
input(type="submit", name="action", value="Add to Cart")
- }
Первый раз на кнопку «Добавить в корзину» щелкают, itemsInCart
действительно обновлен до 1. После Клики «Добавить в корзину» не будут обновлять это значение.
Просьба сообщить.
Это, похоже, не работает. Я пробовал это, itemsInCart остается в 0 и не будет обновляться. – Duos
Это означает, что часть кода, которая отвечает за обновление, не запускается после добавления элемента, пожалуйста, сообщите подробнее, где определена эта переменная itemsInCart? – jevgenig
Я отредактировал свой вопрос, добавив все соответствующие коды. Пожалуйста, проверьте это. – Duos