From ab7f57239d65901daf2a45951d267702578d3c67 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Mon, 4 Jul 2022 18:06:30 -0700 Subject: [bench] react hello world --- bench/react-hello-world.node.jsx | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 bench/react-hello-world.node.jsx (limited to 'bench/react-hello-world.node.jsx') diff --git a/bench/react-hello-world.node.jsx b/bench/react-hello-world.node.jsx new file mode 100644 index 000000000..1f765d4a4 --- /dev/null +++ b/bench/react-hello-world.node.jsx @@ -0,0 +1,44 @@ +// react-ssr.tsx +import { renderToPipeableStream } from "react-dom/server.node"; +import React from "react"; +const http = require("http"); +const App = () => ( + + +

Hello World

+ + +); +var didError = false; +http + .createServer(function (req, res) { + const stream = renderToPipeableStream(, { + onShellReady() { + // The content above all Suspense boundaries is ready. + // If something errored before we started streaming, we set the error code appropriately. + res.statusCode = didError ? 500 : 200; + res.setHeader("Content-type", "text/html"); + stream.pipe(res); + }, + onShellError(error) { + // Something errored before we could complete the shell so we emit an alternative shell. + res.statusCode = 500; + res.send( + '

Loading...

' + ); + }, + onAllReady() { + // If you don't want streaming, use this instead of onShellReady. + // This will fire after the entire page content is ready. + // You can use this for crawlers or static generation. + // res.statusCode = didError ? 500 : 200; + // res.setHeader('Content-type', 'text/html'); + // stream.pipe(res); + }, + onError(err) { + didError = true; + console.error(err); + }, + }); + }) + .listen(9080); -- cgit v1.2.3