将 Express.js 与 React.js 一起使用的推荐方式?
Posted
技术标签:
【中文标题】将 Express.js 与 React.js 一起使用的推荐方式?【英文标题】:Recommended way for using Express.js with React.js? 【发布时间】:2019-04-11 05:55:00 【问题描述】:我找到了两种结合 React 和 Express 的方法:
[选项 1] ExpressJS 提供 React 静态文件
从根本上说,这里的想法是在启动服务器之前拥有预编译的 javascript 文件供您使用。然后在 Express 中间件中:
app.use(express.static(path.join(__dirname, '../client/build')));
然后有其他端点在服务器端执行逻辑。
[选项 2] 单独托管 React 文件
基本上,将前端和后端的整体逻辑与一台服务器解耦,仅用于提供静态 JS 文件。然后是另一个 Express 服务器,用于对数据库运行任何查询。并返回简单的 JSON 响应。
推荐的方式是哪一种?使用一种方法比另一种方法有优势吗?
【问题讨论】:
我还没有听说过推荐的方法,我已经用 React 应用程序构建了几个 Express。你的应用是做什么的?你的目标是什么? 我正在开发一个已经存在于生产环境中的应用程序。但我想知道他们是否采取了正确的方法。该应用程序本身有两个门户,具体取决于用户类型(想想教师/学生交换作业)。除此之外,它还有另一个应用程序,它有一个单独的前端(想想代码提交环境)。 【参考方案1】:这是一个自以为是的问题,所以我只能给出一个自以为是的回答。
我个人推荐选项 1,因为当您分离前端和后端时,您会在很多地方遇到跨域资源共享 (CORS) 问题。这并不是说它不能完成,但这将是你必须处理的一件烦人的事情。
使用选项 2,您很可能还必须使用绝对 URL 路径向后端发送任何请求,这在应用程序扩展时可能很难维护。
使用选项 1,您将拥有更大的灵活性、更少的维护和更少烦人的解决方法。
【讨论】:
以上是关于将 Express.js 与 React.js 一起使用的推荐方式?的主要内容,如果未能解决你的问题,请参考以下文章
express.js 和 react.js cookie 保存到浏览器但不工作?
如何通过 Express JS 服务器使 React JS 和 Socket IO 连接在一起?
如何为 api 部署 node js express js,为前端部署 react js,为管理员部署 angular