splice()方法工作,但是数组在执行后不会改变

我正在使用express.js(node.js)来构build一个应用程序。 我有一个产品数组在app.js文件夹中声明为会话(req.session.products)。 这是邮政路线:

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时logging下来:

 [ '1', '3', '3', '3', '3' ] [ '3', '3', '3', '3' ] 

这是我期待的,但是,这不会影响主要会议(req.session.products),并不sorting“保存”它。 为什么?

你真正的问题在于你没有把req.session.products数组返回给你的应用程序 ,你需要把它发送回来。

.post()方法的末尾写下这一行:

 res.send(req.session.products);