node.js - 从购物车中移除物品
问题描述
我正在 vuex、nodeJS 和 express 的网上商店工作,我做了一个购物车。
这是我从购物车中删除商品的后端代码
app.delete('/cart/delete', (req, res) => {
const productId = req.body.id;
fs.readFile(CART_DATA_FILE, (err, data) => {
const newCartProducts = JSON.parse(data).map((cartProduct) => {
if (productId === cartProduct.id && cartProduct.quantity > 1) {
cartProduct.quantity--;
if(productId === cartProduct.id && cartProduct.quantity === 1) {
cartIndexToRemove = newCartProducts.findIndex(cartProduct => cartProduct.id ===
productId);
newCartProducts.splice(cartIndexToRemove, 1);
}
}
return cartProduct;
}).filter((cartProduct) => cartProduct.quantity <= 1);
fs.writeFile(CART_DATA_FILE, JSON.stringify(newCartProducts, null, 4), () => {
res.setHeader('Cache-Control', 'no-cache');
res.json(newCartProducts);
});
});
});
当数量为 1 时,我无法从购物车中删除商品,但当数量大于 1 时,它不会减少数量,它只是将其全部删除。
任何人都可以帮忙吗?
解决方案
推荐阅读
- c - 如何编写在 Windows 上运行的 c 代码?
- python - 将数据框保存到新目录中的新 csv 文件
- rxjs - 以异步方式处理管道中的数据
- python - 如何基于 .csv 文件创建多个 .md 文件,并将 .csv 文件的正确行输入到每个新创建的 .md 文件中?
- json - JSON 不会验证
- python - 为什么 pandas.dataframe 会生成随机顺序
- python - Python 3.8.6 说我安装了更新版本的 Python,但我没有
- python - 如何在 Pandas 中重写以下 SQL 代码以显示查询而不仅仅是标题?
- java - Micronaut,postgres 问题
- r - R:接受命令行输入,如果不是数字类型则显示错误