Как сделать, чтобы пользователь передавал выбранные элементы в массив с помощью select?

Есть пустой массив. При выборе из select выбранный элемент должен добавляться в массив. Проблема в том, что это у меня работает, но добавляется только первый выбранный элемент, остальные - нет. Код из pug:

form(action="/cart/add" method="POST")
    input(type="hidden" name="id" value= product.id)

    select(name="size" required)
      each size in product.sizes
          option(value= size)= size

    input(type="hidden" name="_csrf" value= csrf)
    input.product__block-link(type="submit" value="Добавить в корзину")

Обработка этого запроса на сервере:

router.post('/add', auth, async(req, res) => {
    try {
        const product = await Product.findById(
            req.body.id, req.body.title, req.body.nowPrice, req.body.mainSize,
            req.body.article, req.body.sex
        );

        product.size = req.body.size;

        await req.user.addToCart(product);
        res.redirect('/cart');
    } catch (e) {
        console.log(e);
    }
})

Метод addToCart:

user.methods.addToCart = function(product) {
    const items = [...this.cart.items];
    const idx = items.findIndex(p => {
        return p.productId.toString() === product._id.toString()
    })

    if (idx >= 0) {
        items[idx].count += 1;
    } else {
        items.push({
            title: product.title,
            price: product.nowPrice,
            size: product.size,
            sex: product.sex,
            article: product.article,
            productId: product._id,
            count: 1
        })
    }

    this.cart = { items };
    return this.save();
}

В итоге при выборе например 'M' у меня он добавляется в массив, например захотел еще раз добавить тот же товар, но уже другой размер - он не добавляется, а в массиве остается только 'M'. Очень буду рад когда поможете.


Ответы (0 шт):