为了账号安全,请及时绑定邮箱和手机立即绑定

前后端分离,同构,部署问题?

前后端分离,同构,部署问题?

蝴蝶不菲 2019-03-14 18:14:09
问题描述:这段时间在做一个项目,Web方面主要用的是NodeJs Koa框架、React、React-router,redux等。前端React-create-app 生成项目,build生成静态文件。NodeJs Koa 提供Api。现在主要是部署存在的问题:网上看到有这么几种办法:nginx我的理解是 nginx静态服务器,主要用于用户请求到静态资源,node单独部署,只用于提供APi。简单说就是前后端单独部署。同构Node直接返回页面。这样的话,有两个问题(1)怎么区分请求是api数据接口 还是请求的是页面。(2) 路由问题,是React-router 控制路由还是node。将React打包后的文件当成静态资源返回。当用户请求主页的时候,直接返回打包后的index.html,简单合并到一个项目。**对这会现在有点模糊,对了,主要问题是想问下,前后端分离项目怎么发布,前端大白。最好能详细说明下,感谢。**分割线---------------------------------------------------------补充:由于我现在这个项目有点简单。只要能跑起来。所以不打算用nginx怎么能简单的整合,使用pm2 让跑起来呢、前端build 成一些静态资源文件。我在node端 怎么写呢?这样好像是不行的。当做静态资源好像也不行,所有的请求都会返回这个主页面。这块应该怎么写,或者有什么例子么?
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

  1. 如果不需要SSR的话选1,需要的话选2。

  2. 用请求路径来区分是api还是页面。

  3. 看你需要的是SPA还是多页面应用来决定是前端路由还是后端路由。


查看完整回答
反对 回复 2019-04-08
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

我谈一些个人的看法,大家探讨。
要讨论如何部署,其实是讨论部署后效率更高(同时支持的用户更多、响应更快)以及开发变动时改动更方便这两个可能冲突的需求。
而这些需求又同应用实际需要以及实现有关。

如果能够保证所有内容都静态化,且前端实现路由(去请求各种资源),则肯定方案1效率最高,毕竟nginx是专业提供静态资源服务的。

对于你2方案中的疑问,其实nodejs中是通过默认路由的方式可以处理的,即不会出现不能区分api请求和文档请求的情况,起码一个好的正确的服务框架肯定是需要做到这一点的。当然,这会带来文档请求效率问题(毕竟nodejs服务不是专业干这个的,只能说可用而已,也也是很多大的应用通过域名等区分不同资源、服务的原因)。

3方案不是不可以,但要根据实际情况分析是否恰当。


查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 586 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号