Viewing File: /home/ubuntu/misabloom-frontend-base/server/server.js

const express = require("express");
const path = require("path");
const fs = require("fs");
const axios = require("axios");
require('dotenv').config();

const PORT = process.env.PORT || 9000;

const app = express();

const sendDefaultData = (req, res) => {
    updateMetaData(res,
        "Posh Luxury Fashion | Accessories & Fashion",
        "Find high-quality Fashion products, including seeds, edibles, flowers, beverages, etc., at the Posh Luxury Fashion | Accessories & Fashion for people over the age of 19+",
        getFullUrl(req));
}

const getFullUrl = (req) => {
    return `${req.protocol}://${req.hostname}${req.originalUrl}`;
}

const updateMetaData = (res, title, description, requestUrl) => {
    const filePath = path.resolve(__dirname, "./build", "index.html")
    fs.readFile(filePath, "utf8", (err, data) => {
        if (err) {
            console.log(err);
            return res.status(500).send("Somer error Occured")
        }
        data = data
            .replace(/__TITLE__/g, title)
            .replace(/__DESCRIPTION__/g, description)
            .replace(/__REQUEST_URL__/g, requestUrl)
            .replace(/__FB_APP_ID__/g, process.env.FB_APP_ID)
            .replace(/__TWITTER_USERNAME__/g, process.env.TWITTER_USERNAME);
        res.send(data);
        res.end();
    });
}

app.get("/product/:productUniqueId", (req, res) => {

    try {
        const filePath = path.resolve(__dirname, "./build", "index.html")
        fs.readFile(filePath, "utf8", (err, fileData) => {
            if (err) {
                return console.log(err);
            }

            axios.post((process.env.BASE_URL || "https://cms-poshmarkets.socialdraco.com/api/user/") + "products_view", {
                product_unique_id: req.params.productUniqueId,
            })
                .then(response => {
                    if (response.data.success) {
                        fileData = fileData
                            .replace(/__TITLE__/g, response.data.data.product.name + " | Posh Luxury Fashion | Accessories & Fashion")
                            .replace(/__DESCRIPTION__/g, response.data.data.product.description_formatted)
                            .replace(/__IMAGE__/g, response.data.data.product.file)
                            .replace(/__REQUEST_URL__/g, getFullUrl(req))
                            .replace(/__FB_APP_ID__/g, process.env.FB_APP_ID)
                            .replace(/__TWITTER_USERNAME__/g, process.env.TWITTER_USERNAME);
                        res.send(fileData);
                        res.end();
                    } else {
                        sendDefaultData(req, res);
                    }
                })
                .catch(error => {
                    sendDefaultData(req, res);
                });
        });
    } catch (error) {
        console.log(error);
    }
});

app.get("*", (req, res) => {
    try {
        const filePath = path.resolve(__dirname, "./build" + req.params[0]);
        res.sendFile(filePath, {}, function (err) {
            if (err) {
                sendDefaultData(req, res);
            } else {
                // console.log('Sent:', filePath);
            }
        });
    } catch (error) {
        console.log(error);
    }
});

app.use(express.static(path.resolve(__dirname, "./build")))

app.listen(PORT, () => {
    console.log(`Server Listening on port ${PORT}`);
})
Back to Directory File Manager