我想将其添加到node.js express应用程序中的购物车中,而无需刷新或重定向路由。有没有办法做到这一点?这是“添加到购物车”功能的路线:
router.get('/add-to-cart/:id/:pices', function(req, res) {
var pices = req.params.pices;
var productId = req.params.id;
var cart = new Cart(req.session.cart ? req.session.cart : { });
Product.findById(productId, function (err, product) {
if (err) {
return res.redirect('/');
}
cart.add(product, product._id, pices);
req.session.cart = cart;
res.redirect('/products');
});
});
如您所见,每次将商品添加到购物车时,我都会重定向到('/ products')。有没有一种解决方法,以使页面不会每次都刷新?
谢谢!
答案 0 :(得分:1)
这不是后端问题,而是前端问题。我假设您正在使用一个action
设置为该端点的表单元素。
您要寻找的是AJAX和fetch。不太确定您的前端设计,但我会猜测:
在脚本的前端:
yourForm
submit
事件监听器{credentials: "include"}
,以便后端知道要添加到的购物车。 (它发送会话数据)yourForm.addEventListener("submit", async function (ev) {
ev.preventDefault();
await fetch(ev.target.getAttribute("action"), {credentials: "include"});
});
(对于这种类型的操作,您可能还想使用HTTP发布请求)