Sunday, August 2, 2020

MERN STACK - Amazona Project Part 3

Multiple items in cart need to be saved in cookies


Cookies setup 


npm install js-cookie

in frontent folder


import Cookie from "js-cookie";

---
const removerFromCart = (productId) => (dispatch, getState) => {
    dispatch({ type: CART_REMOVE_ITEM, payload:productId });

    const { cart: {cartItems } }  = getState();
    Cookie.set("cartItems", JSON.stringify(cartItems));

}

store.js



const cartItems = Cookie.getJSON("cartItems") || [];

const initialState = { cart : {cartItems} };



 


Mongo DB setup



create .env file in the root amazona

MONGODB_URL=mongodb://localhost/amazona

npm install dotenv

Create config.js inside amazon/backend/ 
export default {
    MONGODB_URL: process.env.MONGODB_URL || 'mongodb://localhost/amazona'
}
Add  to server.js

import dotenv from 'dotenv';
import config from './config';

dotenv.config();


Download and install MONGO DB  


Install mongoose  @amazona root

npm install mongoose

Add in server.js 

const mongodbUrl = config.MONGODB_URL;
mongoose.connect(mongodbUrl, {
    useNewUrlParser:true;
}).catch(error => console.log(error.reason));



Create Models/userModel.js in backend


import mongoose from 'mongoose';

const userSchema = new mongoose.Schema({
    name: { type: Stringrequired:true },
    email: { type: Stringrequired: trueunique:true },
    password: { type: Stringrequired:true },
    isAdmin: { type:Booleanrequireddefault: false }
});

const userModel = mongoose.model("User"userSchema);

export default userModel;



Create Routes/userRoute.js  in backend


import express from 'express';
import User from '../models/userModel';

const router = express.Router();

router.get("/api/users/createadmin"async(reqres=> {
    
    try {
        const user = new User({
            name: 'Sreeraj',
            email: 'sreeraj@infoexpo.in',
            password:'12345',
            isAdmin: true
    
        });
        const newUser = await user.save();
        res.send(newUser);
    } catch (error) {
        res.send({ msg: error.message });
    }

});










No comments:

Post a Comment