Viewing File: /home/ubuntu/todaykat-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,
"Discover the Best Electronics – Gadgets & Tech!",
"Shop the latest in electronics, from smartphones to home appliances. Find top brands, unbeatable prices, and fast shipping for all your tech needs!",
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 + " | Discover the Best Electronics – Gadgets & Tech!")
.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