【发布时间】:2019-02-08 03:12:39
【问题描述】:
我正在尝试为我的 react 应用程序实现服务器端渲染,即 SSR。我用 puppeteer 创建了一个 express 应用程序,并通过以下 sn-ps 获得了端点。
const port = 3003
app.get('*', async (req, res) => {
try {
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
const local_url = `http://localhost:${port}${req.originalUrl}`;
await page.goto(local_url, {
waitUntil: "networkidle0",
});
const html = await page.content()
await browser.close()
res.send(html);
} catch(e) {
console.log(e);
res.send("ERROR");
}
});
app.listen(process.env.PORT || port, () => {
console.log(`Web run ${port}`);
});
我只是不知道为什么这不起作用。我是否必须单独运行我的反应应用程序(在3000 上运行)并将local_url 变量指向那里?喜欢
const local_url = `http://localhost:3000${req.originalUrl}`;
【问题讨论】:
-
“这不起作用”是什么意思?
-
@Everettss 好吧,当我加载页面并检查页面的
source时,它应该包含所有反应组件作为 html 标记,对吗?事情没有。
标签: reactjs express puppeteer server-side-rendering