我有一个来自数据库的产品清单,所有产品都可以正常工作,但是当有人按下“购买”时,我需要获取ID我尝试抓住de req.body,但无法保存。
我尝试使用SessionStorage和LocalStorage,但无法正常工作。
carritoForm: (req, res) => {
let obj = JSON.parse(JSON.stringify(req.body)); // req.body = [Object: null prototype] { title: 'product' }
console.log(obj)
res.redirect('index');
}
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12 bloques">
<p>Incendios</p>
<div class="imagen">
<a href="" target="_blank"><img src="../images/fire.png" alt="" /></a>
</div>
<br>
<p>Lorem ipsum dolor sit amet consectetur adipiscing elit elementum eget congue, tristique sollicitudin enim eu
nisi ultrices iaculis justo scelerisque, phasellus vestibulum metus rhoncus sapien a integer odio ligula.
Senectus parturient maecenas conubia netus pharetra felis placerat tincidunt, tortor fusce cras ligula nostra
cursus augue duis lacinia, nascetur semper a habitasse euismod inceptos vivamus. Sociosqu ante neque morbi
pulvinar habitasse enim himenaeos, ultrices per orci molestie nisi fames dignissim praesent, lacus iaculis class
cursus mollis eros.</p>
</div>
</div>
<div class="container">
<div class="row">
<br>
<% products.filter(function (el) { %>
<% return (el.prdCategId === 3); %>
<% }).map(function(el) { %>
<br>
<div class="col-sm-12 col-md-12 col-lg-12 lista-productos">
<div class="col-sm-4 col-md-4 imgcart">
<img src="/images/prdImages/<%= el.image %>" alt="">
</div>
<br>
<div class="col-sm-8 col-md-8 agregar-carrito">
<br>
<b>Descripcion:</b> <%= el.description %> <br>
<b>Precio: $</b> <%= el.price %> <br> <br>
<form name= 'compras' action="/products/incendios" method="POST" >
<button name="incendios" value="<%= el.id %>" type="submit">Buy</button>
</form>
<br>
<br>
</div>
</div>
<% }).sort(); %>
</div>
</div>
</div>
当我按下'Comprar'输出是正确的'{incendios:'2'}',与我按下的按钮匹配,但是我不知道如何保存。
对于控制器:
if (req.cookies.compra!=undefined) {
console.log('Pisando datos')
let contenidoCookie = JSON.parse(req.cookies.compra); // Convierto el array en string para poder pushearle cosas
contenidoCookie.push(req.body.item); // Le metés a ese array que recuperaste el contenido nuevo
console.log(contenidoCookie)
res.cookie('compra', JSON.stringify(contenidoCookie), { maxAge: (1000 * 60) * 10 }); // Volvés a setear la cookie
} else {
console.log('Creando datos por primera vez')
let contenidoCookie = [req.body.item]
res.cookie('compra', JSON.stringify(contenidoCookie), { maxAge: (1000 * 60) * 10 }); // Seteo la cookie para que nunca mas sea undefined
}
对于中间件:
function carrito(req, res, next) {
let cookie = req.cookies.compra
if(cookie != null) {
console.log('La cookie ya existe')
} else {
// Crear la cookie
let array=[];
res.cookie('compra', JSON.stringify(array), { maxAge: (1000 * 60) * 5 });
console.log('La Cookie fue creada')
}
next();
}