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 中使用?

在Node.js上搭建React.js开发环境

在带有 React.js 前端的 Node.js 上使用 Passport.js 进行身份验证

React-Router vs Node.js

MySQL 结果来自 html 中的 node.js,由 react.js