reactjs – How to deploy a react router 7 frontend app with node express backend in SSR?
I ran into the same issue when trying to deploy a React Router 7 app with an Express backend. The key is:
Server.js
import express from "express";
import { renderToString } from "react-dom/server";
import { StaticRouter } from "react-router-dom/server";
import fs from "fs";
import App from "./src/App.jsx";
const app = express();
app.use(express.static("build"));
app.get("*", (req, res) => {
const html = renderToString(
);
const index = fs.readFileSync("./build/index.html", "utf8");
res.send(index.replace('', `${html}
`));
});
app.listen(5000);
index.js
import { hydrateRoot } from "react-dom/client";
import { BrowserRouter } from "react-router-dom";
import App from "./App";
hydrateRoot(document.getElementById("root"),
);
run this:
npm run build
node server.js
Read more here: Source link
