import fs from "fs"; import ReactDOMServer from "react-dom/server.js"; // import App from "/src/App"; const APP_PLACEHOLDER = ""; export default (App) => { console.log(App); return async function ssr(req, res, next) { // ToDo console.log("ssr"); const template = fs.readFileSync(process.cwd() + "/template/index.html", { encoding: "utf-8", }); console.log("template", template); const [pageBeforeApp, pageAfterApp] = template.split(APP_PLACEHOLDER); console.log("start", pageBeforeApp); res.write(pageBeforeApp); const stream = ReactDOMServer.renderToNodeStream((await App).code); stream.pipe(res, { end: false }); stream.on("end", () => res.end(pageAfterApp)); // const stream = ReactDOMServer.renderToString(App); // console.log("content", stream); // res.write(stream); // res.end(pageAfterApp); }; };