Приложение js узла не показывает обновленную страницу после res.redirect - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь добавить товар в корзину с помощью экспресс-сессии, после нажатия кнопки «добавить в корзину», res.redirect должен перенаправить на страницу корзины.Но количество товаров на странице перенаправленной корзины покупок не обновляется, если я не обновлю страницу вручную, нажав кнопку корзины покупок.

Я подумал, что это может быть связано с асинхронностью, и попытался добавить функцию setTimeout, чтобы задержать обновление страницы ине работалТакже попробовал async / await, не работал.И я обнаружил, что мой вопрос очень похож на res.redirect, показывающий старую информацию после отправки формы? , но в ответе предлагается объединить две функции в одну, так что res.redirect будет работать.Поскольку в моем коде есть sql, я не уверен, что эти две функции можно объединить.Ниже приведен мой код router.post.

router.post('/:idx', async function (req, res) {
  var productId = req.params.idx
  cart = new Cart(req.session.cart ? req.session.cart : {});

      var queryString = 'SELECT * FROM prod.product_list_details WHERE idx = ?'
      await   conn.query(queryString, productId,   function (err, rows) {
            if (err) throw err;
            cart_id = rows[0].idx
            cart_data = rows[0];
            cart.add(cart_data, cart_id)
            // cart.increment(cart_id)
            req.session.cart = cart;
            console.log(req.session.cart)
            res.locals.session = req.session;
            // callback();
            // res.redirect('/shopping-cart');
           })
           setTimeout(() => {
            res.redirect('../shopping-cart');
          }, 2000)
});

Любые идеи будут с благодарностью!Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...