React.js 与 Node.js Rest API
Posted
技术标签:
【中文标题】React.js 与 Node.js Rest API【英文标题】:React.js with Node.js Rest API 【发布时间】:2016-12-20 01:27:08 【问题描述】:我应该将我的 Reactjs 应用程序包含在与我的 REST API 相同的应用程序中吗?
我是 Reactjs 的新手。我已经构建了一些独立的 Node REST API。我正在构建一个 React 应用程序、一个 android 应用程序和一个 ios 应用程序(因此 REST API 需要为所有三个应用程序提供服务)。我想知道构建 Node API 时的约定是什么。
在我看来有 2 个选项...
1) 我可以构建一个包含 REST API 和 React App 的大型应用程序。此应用程序将为来自移动应用程序和 react/web 应用程序的所有 API 调用提供服务。它还将提供所有视图,即 html、CSS 等。
或
2) 我可以构建两个较小的应用程序。一种是为 React 应用程序提供视图模板和一个单独的(更轻的)节点服务器。第二个应用程序不会保留任何视图。它只是作为 JSON API 为所有三个应用程序提供服务。
【问题讨论】:
【参考方案1】:我建议使用同构应用程序。看看这个样板:react-redux-universal-hot-example。
在您的项目中,您可以运行两个端口:一个用于渲染您的反应视图(我更喜欢服务器端渲染以提供更快的 Web 渲染),另一个用于 api 和 Web 套接字。
您的移动应用也可以使用 api/ws 服务器来提供 RESTful 服务。
【讨论】:
查看这篇文章以获取有关“同构”应用程序的更多信息...nerds.airbnb.com/isomorphic-javascript-future-web-apps【参考方案2】:我建议为前端和后端构建单个应用程序。一旦缩放成为一个问题,那么将两者分开就更有意义,因为您需要从 CDN 提供前端内容。
但是对于一些小的事情,分离前端和后端将需要你必须运行两个单独的服务器并处理 CORS:https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
【讨论】:
以上是关于React.js 与 Node.js Rest API的主要内容,如果未能解决你的问题,请参考以下文章
使用 node.js 和 react.js 客户端启动一个 firebase 功能项目
如何在 node.js 中导入 font-awesome 以在 react.js 中使用?