【问题标题】:How to upload shopping cart data to a cookie?如何将购物车数据上传到 cookie?
【发布时间】:2020-01-23 01:54:55
【问题描述】:

我的项目是电子商务网站时遇到问题,当用户登录页面并下订单时,它被添加到购物车中,但是当另一个用户唱歌时,他可以看到订单其他用户的。

它添加到集合订单中的订单以及它与产品集合和凭据一起存储的集合(同一数据库)

我知道我必须将信息添加到 cookie 会话中,这样只有用户才能看到他的购物车,在浏览了一段时间 npm connect-mongodb-session 之后,但是并尝试使用 req 直接添加信息 oa cookie。 cookie,我对 cookie 还很陌生。

您可以在下面看到该页面的 get.post 的数据库架构,并使用新订单将其添加到集合中。

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const session = require("express-session");
const cookieParser = require("cookie-parser");
const MongoDBStore = require('connect-mongodb-session')(session);

var app = express();

var store = new MongoDBStore({
  uri: "mongodb+srv://<user><password>@cluster0- 
   okw4h.mongodb.net/productosDB",
  collection: "orders"
});

app.use(express.static("public"));
app.set("view engine", "ejs");

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());


app.use(cookieParser());

store.on('error', function(error) {
  console.log(error);
});

app.use(session({
    secret: "Our little secret.",
    cookie: { expires : new Date(Date.now() + 360000) },
    store: store,
    resave: false,
    saveUninitialized: false
}));

mongoose.connect("mongodb+srv://<user><password>@cluster0- 
   okw4h.mongodb.net/productosDB",
   {useNewUrlParser: true});

const orderSchema = {
    amount: Number,
    name: String,
    price: Number,
    total: Number
};

app.post("/cambio", function(req, res) {
   var inputValue = req.body.vote;

    if (inputValue == "add") {
    var cantidad = req.body.option;
    var name = productName.name;
    var price = productName.price;

    totalPrice = cantidad * price;

     const order = new Order ({
       amount: cantidad,
       name: name,
       price: price,
       total: totalPrice
    });

    res.redirect("/cambio");
   }
});

【问题讨论】:

  • 你如何区分用户的订单,在订单集合中添加用户 ID 并根据用户 ID 查找所有订单,仅显示该用户的订单。

标签: node.js mongodb express cookies mongoose


【解决方案1】:

您可以使用 res.cookie("Cookie_name", value) 为用户制作 cookie,然后使用 req.cookies 请求它们以获取用户数据。下面的代码将帮助您制作 cookie。

//JSON object to be added to cookie 
let users = { 
name : "Ritik", 
Age : "18"
} 
  
//Route for adding cookie 
app.get('/setuser', (req, res)=>{ 
res.cookie("userData", users); 
res.send('user data added to cookie'); 
}); 
  
//Iterate users data from cookie 
app.get('/getuser', (req, res)=>{ 
//shows all the cookies 
res.send(req.cookies); 
}); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2020-08-02
    相关资源
    最近更新 更多