React app:使用Node / express作为中间代理服务器

我正在为传统的RESTful API服务器(Golang)构build一个React应用程序。 直接的方法很容易:

React --> Redux (or any flux) --> Go server 

不过,我现在想插入Node / express作为一个中端,所以堆栈变成:

 React --> Redux --> Node/express --> Go server 

我能想到的好处是:

  • 服务器端渲染
  • 更快的表单validation
  • 在发送到Go API之前清理数据,并有许多令人惊叹的节点包
  • 轻松pipe理身份validation和会话

缺点是显而易见的,随着增加的层次,任何最终转到后端的请求将需要更多的时间来回。

我对build筑非常陌生,知道人们是否在生产项目中使用这个额外的堆栈会很高兴。 经验如何?

我们正在为我们的应用程序使用类似的堆栈React --> Redux --> Node/express OR Go server 。 为了能够与SSO服务器(不同于我们的GO服务器)连接,我们牺牲了代理节点服务器的额外延迟,而且还要做服务器端渲染。

我们select这个的原因是因为我们是一个面向公众的网站,允许用户分享post到Facebook。 如果我们没有服务器端渲染,我们需要支付像Prerender.io这样昂贵的服务。

我build议的(我们所做的)唯一的事情就是通过节点服务器进行一些调用,比如渲染或者与SSO相关的东西,但是允许一些直接的API请求直接进入GO服务器。 除非你需要为GO和React之间的每个请求做一些事情,否则我build议这样做以防止一些开销。