My array's values get deleted automatically and can't get to know why.
I am working on a e-commerce website for a client and I am working on cart feature. My app connects to the Mongodb using mongoose, i have passport for authentication. When i hit '/cart' route, my code finds the user from the mongodb database using it's username stored in cookie, then go through the 'inCart' field and fetch the product's document id's after which i use findById to find that product and save it into a array the code works till here and my array holds the documents but as soon as my findById loop exits, the array is empty again IDK why.
I have spent so much time figuring the why but i can't get to the answer and so any solution is a huge thanks.
My App Js - cart route code:
array has values till line number 18, and then from line 20 array gets empty
app.get("/cart", function (req, res){
    var userID = req.cookies["userEmail"];
    var cartProducts = [];
    User.findOne({username: userID}, function (err, user){
        if (err){
            console.log(err);
        } else {
            user['inCart'].forEach(function (productId) {
                Product.findById(productId, function (err, doc){
                    if (err) {
                        console.log(err);
                    } else {
                        // console.log(doc)
                        cartProducts.push(doc);
                        // console.log(cartProducts)
                    };
                    // console.log(cartProducts) - works
                });
                // console.log(cartProducts); - not working from here
            });
        };
    });
    // console.log(cartProducts)
    res.render("cart", { cart: cartProducts })
});
Results:


 
    