将Express.js与React.js结合使用的推荐方法?

时间:2018-11-07 18:30:11

标签: node.js reactjs express webpack microservices

我发现了将React和Express结合起来的两种方法:

[选项1] ExpressJS提供React静态文件

从根本上讲,这里的想法是在启动服务器之前,可以使用预编译的JavaScript文件。然后在Express中间件中:

app.use(express.static(path.join(__dirname, '../client/build')));

然后串联其他端点在服务器端执行逻辑。

[选项2]分别托管React文件

基本上,将前端和后端的整个逻辑与一台服务器分离,仅用于提供静态JS文件。然后是另一台Express服务器,用于对数据库运行任何查询。并返回简单的JSON响应。

推荐使用哪种方法?使用一种方法相对于另一种方法是否有优势?

1 个答案:

答案 0 :(得分:2)

这是一个自以为是的问题,所以我只能给出自以为是的回答。

我个人建议 OPTION 1 ,因为在断开前端和后端的耦合后,您会在许多地方遇到跨源资源共享(CORS)问题。这并不是说无法完成,但这将是一件令人烦恼的事情。

使用选项2,您很可能还必须使用绝对URL路径将任何请求发送到后端,这在应用程序扩展时很难维护。

使用选项1,您将拥有更大的灵活性,更少的维护和更少的烦恼解决方案。