Node.js应用程序在res.redirect之后未显示更新的页面

时间:2019-06-12 17:31:44

标签: javascript node.js express session

我正在尝试使用express-session将商品添加到购物车,单击“添加到购物车”按钮后,res.redirect应该重定向到购物车页面。但是,除非我通过手动单击购物车按钮刷新页面,否则重定向购物车页面上的项目数量不会更新。

我认为这可能与异步有关,并尝试添加setTimeout函数来延迟页面刷新,但此方法不起作用。也尝试过异步/等待,没有用。而且我发现我的问题与res.redirect showing old information after form submission?非常相似,但是答案建议将两个函数组合为一个,这样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)
});

任何见解将不胜感激!非常感谢!

0 个答案:

没有答案