I don’t really know what I am doing wrong. For a second I was able to go to the endpoint and I got the json output. Now no matter what I do I am just routed to a blank page on the site, I get the 200 status and an html document. I am using express for the back server and React for the front but statically built. I am running this all via cpanel.
React fetch
<code> useEffect(() => {
const fetchImageData = async () => {
try {
const response = await fetch(
"/api/getHistoryInfo"
);
if (!response.ok) {
throw new Error("Network response was not ok");
}
//console.log(response);
const { data } = await response.json();
console.log(data);
setTimeLineEvents(data.timeline);
console.log(data);
} catch (error) {
console.error("Failed to fetch image data:", error);
}
};
fetchImageData();
}, []);
</code>
<code> useEffect(() => {
const fetchImageData = async () => {
try {
const response = await fetch(
"/api/getHistoryInfo"
);
if (!response.ok) {
throw new Error("Network response was not ok");
}
//console.log(response);
const { data } = await response.json();
console.log(data);
setTimeLineEvents(data.timeline);
console.log(data);
} catch (error) {
console.error("Failed to fetch image data:", error);
}
};
fetchImageData();
}, []);
</code>
useEffect(() => {
const fetchImageData = async () => {
try {
const response = await fetch(
"/api/getHistoryInfo"
);
if (!response.ok) {
throw new Error("Network response was not ok");
}
//console.log(response);
const { data } = await response.json();
console.log(data);
setTimeLineEvents(data.timeline);
console.log(data);
} catch (error) {
console.error("Failed to fetch image data:", error);
}
};
fetchImageData();
}, []);
Express server
<code>const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const app = express();
const port = 8080;
const timelineRouter = require('./routes/getHistoryInfo');
const faqRouter = require('./routes/getFAQ');
const eventsRouter = require('./routes/getEvents');
const gridRouter = require('./routes/getGridImages');
app.use(cors());
app.use(bodyParser.json());
app.use('/api/getHistoryInfo', timelineRouter);
app.use('/api/getFAQ', faqRouter);
app.use('/api/getEvents', eventsRouter);
app.use('/api/getGridImages', gridRouter);
app.listen(port, ()=> {
console.log("Server running");
});
</code>
<code>const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const app = express();
const port = 8080;
const timelineRouter = require('./routes/getHistoryInfo');
const faqRouter = require('./routes/getFAQ');
const eventsRouter = require('./routes/getEvents');
const gridRouter = require('./routes/getGridImages');
app.use(cors());
app.use(bodyParser.json());
app.use('/api/getHistoryInfo', timelineRouter);
app.use('/api/getFAQ', faqRouter);
app.use('/api/getEvents', eventsRouter);
app.use('/api/getGridImages', gridRouter);
app.listen(port, ()=> {
console.log("Server running");
});
</code>
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const app = express();
const port = 8080;
const timelineRouter = require('./routes/getHistoryInfo');
const faqRouter = require('./routes/getFAQ');
const eventsRouter = require('./routes/getEvents');
const gridRouter = require('./routes/getGridImages');
app.use(cors());
app.use(bodyParser.json());
app.use('/api/getHistoryInfo', timelineRouter);
app.use('/api/getFAQ', faqRouter);
app.use('/api/getEvents', eventsRouter);
app.use('/api/getGridImages', gridRouter);
app.listen(port, ()=> {
console.log("Server running");
});
getHistoryInfo
<code>const express = require('express');
const fs = require('fs');
const router = express.Router();
const formatDate = (dateString) => {
const date = new Date(`${dateString}T00:00:00Z`); // Append 'T00:00:00Z' to indicate UTC time
const options = {
timeZone: "UTC", // Specify timezone as UTC
month: "long",
day: "numeric",
year: "numeric",
};
return date.toLocaleDateString("en-US", options);
};
router.get("/", (req, res) => {
try {
console.log('hit');
const jsonData = JSON.parse(
fs.readFileSync("./public/history/history.json", "utf-8")
);
res.status(200).json({ data: jsonData });
} catch (error) {
console.error("Error reading image files:", error);
res.status(500).json({ error: "Internal Server Error" });
}
});
module.exports = router;
</code>
<code>const express = require('express');
const fs = require('fs');
const router = express.Router();
const formatDate = (dateString) => {
const date = new Date(`${dateString}T00:00:00Z`); // Append 'T00:00:00Z' to indicate UTC time
const options = {
timeZone: "UTC", // Specify timezone as UTC
month: "long",
day: "numeric",
year: "numeric",
};
return date.toLocaleDateString("en-US", options);
};
router.get("/", (req, res) => {
try {
console.log('hit');
const jsonData = JSON.parse(
fs.readFileSync("./public/history/history.json", "utf-8")
);
res.status(200).json({ data: jsonData });
} catch (error) {
console.error("Error reading image files:", error);
res.status(500).json({ error: "Internal Server Error" });
}
});
module.exports = router;
</code>
const express = require('express');
const fs = require('fs');
const router = express.Router();
const formatDate = (dateString) => {
const date = new Date(`${dateString}T00:00:00Z`); // Append 'T00:00:00Z' to indicate UTC time
const options = {
timeZone: "UTC", // Specify timezone as UTC
month: "long",
day: "numeric",
year: "numeric",
};
return date.toLocaleDateString("en-US", options);
};
router.get("/", (req, res) => {
try {
console.log('hit');
const jsonData = JSON.parse(
fs.readFileSync("./public/history/history.json", "utf-8")
);
res.status(200).json({ data: jsonData });
} catch (error) {
console.error("Error reading image files:", error);
res.status(500).json({ error: "Internal Server Error" });
}
});
module.exports = router;
.htaccess
<code><IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
</code>
<code><IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
</code>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>