From a0dbe4f7fc95e0e25ac4310cee1b90b50015a255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Mon, 16 Dec 2024 15:18:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=88=B0=E4=BD=BF=E7=94=A8re?= =?UTF-8?q?nderToReadableStream=E6=B8=B2=E6=9F=93=E6=A0=B9=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server.ts b/server.ts index 1adb8f4..aa4d83c 100644 --- a/server.ts +++ b/server.ts @@ -1,7 +1,7 @@ import Elysia from 'elysia'; import { connect } from 'elysia-connect-middleware'; import { createElement } from 'react'; -import { renderToString } from 'react-dom/server'; +import { renderToReadableStream } from 'react-dom/server'; import { createServer } from 'vite'; import { App } from './src/App'; @@ -23,13 +23,14 @@ app.use(connect(vite.middlewares)); app.get('/', async ({ request }) => { const url = request.url.replace(base, ''); const app = createElement(App); - const rootComponent = await renderToString(app); + const rootComponent = await renderToReadableStream(app); + const rootComponentString = await Bun.readableStreamToText(rootComponent); if (!isProduction) { template = await vite.transformIndexHtml(url, template); } - const html = template.replace(``, () => rootComponent); + const html = template.replace(``, () => rootComponentString); return new Response(html, { headers: {