【发布时间】:2020-10-20 16:02:18
【问题描述】:
我正在尝试使用 React、React Router 和 webpack 在 Express 中建立一个基本的猫鼬连接
有 ssr 和 Mongodb 的例子吗?
服务器应该是什么样的?
const app = express();
app.use(express.static("./build"));
app.get("*", (req, res) => {
const url = req.originalUrl || req.url;
const context = {};
const indexFile = path.resolve("./build/main.html");
if (context.url) {
req.header("Location", context.url);
return res.send(302);
}
const css = new Set();
const insertCss = (...styles) =>
styles.forEach((style) => css.add(style._getCss()));
const appContent = ReactDOMServer.renderToString(
<StyleContext.Provider value={{ insertCss }}>
<StaticRouter
location={req.url}
context={context}
></StaticRouter>
</StyleContext.Provider>
);
fs.readFile(indexFile, "utf8", (err, data) => {
if (err) {
console.log(err);
return res.status(500).send("ne rabotaet");
}
data = data.replace("__STYLES__", [...css].join(""));
data = data.replace(
"<div id=app></div>",
`<div id=app>${appContent}</div>`
);
return res.send(data);
});
});
app.listen(3000, () => {
console.log("Listenning on port: ", 3000);
});
【问题讨论】:
-
您好!已添加到问题中的代码当前没有对猫鼬的任何引用?您能否用 sn-ps 更新您可能尝试建立 mongo 连接的问题。