Добавить товары в корзину, если пользователь не авторизован - PullRequest
0 голосов
/ 07 марта 2019

Я работаю над корзиной покупок в одностраничном приложении.

В настоящее время вошедший в систему пользователь может добавлять товары в свою корзину, а я храню товары в пользовательской таблице в mongoose с помощью response, redux,Express.js и mongoose, но теперь я хочу, чтобы пользователи, не вошедшие в систему, добавляли элементы в корзину.

При рассмотрении проблемы в логике выясняется, как я могу это сделать, потому что, если пользователь не вошел в систему, то какя храню элементы корзины, которые добавил пользователь?многие пользователи, не вошедшие в систему, могут добавлять товары в корзину, но как я узнаю, какая корзина принадлежит какому пользователю, поскольку они не вошли в систему (если я храню корзину в таблице базы данных).

например, вопросы, которые я задаюоблицовка:

  1. Где будут храниться элементы корзины.

  2. Если я сохраню их в базе данных mongoose, то как я узнаю, в каком браузерекакой пользователь добавил этот элемент в корзину, потому что пользователь не вошел в систему и является одностраничным приложением, поэтому я не могу использовать сессию, как я могу это сделать в php.

  3. Как я могусинхронизировать элементы корзины с пользователем после того, как он войдет в систему, потому что пользователь находится в браузере, и у меня не было идентификатора пользователя, когда он добавил элемент в корзину.

1 Ответ

1 голос
/ 08 марта 2019

Сохранить состояние в localStorage. Вы можете записать в строку весь json и сохранить его под названием cart

const cartObj = {
  item1: {},
  item2: {},
}

localStorage.setItem("cart", JSON.stringify(cartObj));

// getting back the object
const copyCartObj = JSON.parse(localStorage.getItem("cart"));

Примечание: Если вы используете sessionStorage, оно будет уничтожено, как только вы закроете вкладку. Таким образом, ваше требование как таковое, вы используете его в противном случае пойти с localStorage.

Надеюсь, это поможет. Любые сомнения пингуют меня в комментариях.

...