【发布时间】:2018-04-26 00:17:42
【问题描述】:
我正在使用 express.js (node.js) 构建应用程序。我在 app.js 文件夹中有一个产品数组声明为会话(req.session.products)。 这是 POST 路线:
router.post('/remove-cart', (req, res, next) => {
var product_id = req.body.product_id; //get product id from client
console.log(req.session.products)
var n = req.session.products.indexOf(product_id); //get position of product id in the array
req.session.products.splice(n, 1); //remove it
console.log(req.session.products)
});
当 n = 0 时,它会在路由结束时记录:
[ '1', '3', '3', '3', '3' ]
[ '3', '3', '3', '3' ]
这是我所期待的,但是,这不会影响主会话 (req.session.products) 并且不会“保存”它。为什么?
【问题讨论】:
-
req.session.products = req.session.products.splice(n, 1)怎么样 -
再次将其分配给产品。
-
@Cedric Hadjian 您的代码在此代码块中运行良好我猜您的问题出在其他地方,因为您想删除索引为 0 的项目并将其删除
标签: javascript arrays node.js session express