Creé una aplicación que tiene un carrito que envía datos al backend, ahora cuando restauro quiero conservar los datos y mostrar los mismos datos que antes.
He usado el método PUT en lugar de POST y cuando envío y obtengo datos de Firebase, los datos se conservan al recargar y los datos de la base de datos están visibles, pero si uso mi propio backend en Node.js, no puedo obtener los datos en la recarga. Aquí es donde estoy obteniendo datos del backend.
export const fetchCartData=()=>{ return async(dispatch)=>{ const getData= async() =>{ const response = await fetch('https://localhost:5000/'); if(!response.ok){ throw new Error('Something went wrong'); } const info=await response.json(); return info; }; try{ const data= await getData(); console.log("Here is data from Firebase", data); dispatch(order_action.replaceCart({ items:data.items || [], totalQuantity:data.totalQuantity || 0 })); }catch(error){ dispatch(show_action.showNotification({ status:"failed", title:"Error...", message:"Some error occurred." })); } } }El código backend es:
const express=require("express"); const bodyParser=require('body-parser'); const cors=require('cors'); const app=express(); app.use(cors()); app.use(bodyParser.json()); app.put("/",function (req,res) { const data={ items:req.body.items, totalQuantity:req.body.totalQuantity } console.log(data); console.log("END"); res.send({data}); }) app.get("/",function (req,res) { console.log(req.body); const data={ items:req.body.items, totalQuantity:req.body.totalQuantity } res.send({data}) }) app.listen(5000,function () { console.log("Running on 5000"); })Puede usar localStorage en el navegador, es decir, en el lado del cliente. Siempre que haya algún cambio en el carrito siga estos pasos:
Envíe datos a la API de back-end utilizando el método PUT y guárdelos en la base de datos o en el caché (según el sitio web y los usuarios con los que esté tratando).
Una vez que obtenga la respuesta de la API, actualice sus datos de almacenamiento local.
localStorage.set('cart', JSON.stringify(dataFromAPI));Ahora, en cada recarga, siempre obtendrá los últimos datos actualizados del carrito.
cuando envío y obtengo datos de Firebase, los datos se conservan al recargar y los datos de la base de datos son visibles
Solo para su conocimiento, firebase es una base de datos y cuando guarda datos, es persistente. Ahora, al recargar, debe llamar a Firebase DB para recuperar los datos, es por eso que ve los datos en el cliente; de lo contrario, es imposible obtener datos sin almacenarlos en caché o guardarlos localmente.