Best practices to handle Cart

102
July 25, 2022, at 5:20 PM

I am trying to create a E-commerce project using MERN stack and was wondering. How to go about creating a cart for a user. I have currently user and products route and model set-up and have created a model for cart which has a id field referring back to the user.

My confusion is how to go about defining the routes for this cart in a RESTful way and how to go about linking the cart to the user.

  1. Should the route be like /carts/:id or should the route be declared inside the User routes and the route would be something like /users/me/cart ?

  2. If the user is signing up. How should the cart be linked to the user. Should it be created at the time user is getting created, like below. or how to go about creating it and linking it to the user. This is confusing to me since the route should be only defined for specific task and here we are using the /users route to also do cart creation.

    // Create user
    router.post('/users', async (req, res) => {
        const user = new User(req.body);
        const cart = new Cart({ owner: user._id });
        try {
            await user.save();
            await cart.save();
            const token = await user.generateAuthToken();
            res.status(201).send({ user, token, cart_id: cart._id });
        } catch (e) {
            res.status(500).send(e);
        }
    });
    

Also, What would be the best practices to handle this type of situation?

Any documentation or suggestions will be appreciated. Thanks for your help in advance!

Rent Charter Buses Company
READ ALSO
Js Node Selenium Try-Catch Js Error not working

Js Node Selenium Try-Catch Js Error not working

I'm trying to simulate clicking on an element that is rendered after a certain iteration of documentreadyState='complete'

63
How to convert s3Object into File and send it inside a FormData on nodeJS?

How to convert s3Object into File and send it inside a FormData on nodeJS?

so I need to download a file from S3 bucket and then, with either its buffer or readStream, append it to a FormData on nodeI've tried different libraries such as formdata-node, isomorphic-form-data and form-data

86
How do I stop my nodejs server for test purposes?

How do I stop my nodejs server for test purposes?

my nodejs module starts a server on a specific port, I am wondering if it is a way to stop the execution of that server in my mocha test:

61
Get return from .mjs script to Python

Get return from .mjs script to Python

I need to executemjs script about 200 times with another parameters (changableParametr):

94