有什么方法可以使用pure node.js/react没有Express.js进行服务器端渲染?
我在服务器端渲染中看到的所有示例涉及Express.js类似于此示例,在server.js文件中:
import path from "path";
import fs from "fs";
import React from "react";
import ReactDOMServer from "react-dom/server";
import express from "express";
import App from "../src/App";
const PORT = process.env.PORT || 3000;
const app = express();
app.get("/", (req, res) => {
fs.readFile(path.resolve("./public/index.html"), "utf8", (err, data) => {
if (err) {
console.error(err);
return res.status(500).send("An error occurred");
}
return res.send(
data.replace(
'<div id="root"></div>',
`<div id="root">${ReactDOMServer.renderToString(<App />)}</div>`
)
);
});
});
app.use(
express.static(path.resolve(__dirname, ".", "dist"), { maxAge: "30d" })
);
app.listen(PORT, () => {
console.log(`Server is listening on port ${PORT}`);
});
但是我想知道这是否可以纯粹用node.js来实现。我不明白为什么不能。但是,当我尝试使用require()函数和节点模块编写时,我永远无法正常工作。是否有人对可以做的事情有一个可行的解决方案,既可以从react react前端导入app.js,又要在node.js中纯粹编写此代码,
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Express只是一个简化某些工作流程的JS软件包,在这种情况下,请聆听并响应HTTP请求。
因此,是的,您可以无需使用Express就可以做到这一点。
简单的互联网搜索将显示一些教程。
以下是Duck Duck Go搜索“ Nodejs如何在没有Express的情况下服务”的前2个结果。
Express is just a JS package to simplify certain workflow, in this case, listening and responding to an http request.
So yes, you can do it without using express.
A simple internet search will show some tutorials.
Below are top 2 results from Duck Duck Go search of "nodejs how to serve without express".