首页 > 开发 > NodeJS > 正文

要实现前后端分离,路由是必须要写的吗?

2017-09-08 17:22:54  来源:网友分享

最近接触的是基于express的sails.js,这是一个使用nodejs的后台框架。在渲染前端页面的时候是通过后端路由来实现的,前端页面使用的模板为ejs。由于使用这种开发方式,导致前后端严重耦合,开发效率比较低。现在想做的就是实现前后端分离。首先,我对路由这个概念理解的不是很透彻,如果大神们能够概括一下就万分感谢了。

第一,后端写路由渲染前端页面我能够理解,很多的工作交给后端去完成。

第二,如果后端不写路由,路由交给前端,利用浏览器去完成路由的分配,以我现在的认识,可以使用angular,vue或者react这类的框架去写,这样写出来的属于SPA单页面应用,整个工程的所有页面都集中在一个网页中,不知道我的理解是不是正确的。这类的路由是不是就是所谓的前端路由?前端的路由只能在写单页面应用的时候使用吗?如果写的不是单页面应用呢,路由的存在还有必要吗?

第三,根据第二条提出的问题,我尝试着去掉了sails.js框架中的路由配置,这个框架有这个性质,当没有配置路由的时候,运行该程序,在浏览器内访问,会识别并加载静态资源文件夹内的index.html文件。同时在静态资源文件夹内创建了html文件夹,html文件夹内写上页面text.html,index.html和text.tml之间也能够在浏览器上正常进行跳转,这个时候路由还有作用吗?这种情况下,前端通过ajax的方式获取json数据,后端提供API,是不是就是所谓的前后端分离了。想了想这样的想法是不是太天真了。所以这里我总结了几个问题:

1.前端路由和后端路由在什么情况下使用呢?
2.前端路由指的就是单页面应用中的路由吗?
3.后端提供API,前端利用ajax获取数据,还需要路由吗?特别是在使用express和sails这类使用node的情况下,路由是必须的吗?

各位大神,看完这么多实在是辛苦了,本人是个前端新手,很多的东西理解的不是很透彻,希望各位理解理解,感谢各位!

解决方案

第一,路由和后端渲染页面没有什么关系。我单纯返回一个数据也能用路由。所以去认真读读路由的相关文档。后端什么,前端什么。
第二,详细的说法到处都有,百度就有,我就通俗地说,后端路由其本质是“绑定处理逻辑和URI”。前端路由的本质是“跳转”,其实也是在绑定东西,让它们联系起来。这也是框架一大功能。路由就是去设置,“在哪里”,“做什么”。

答案:
1.你明白了路由是什么,需要用到就会用。项目中两者都用到。现在正经一点点的项目都是前后端分离的。
2.当然不是,单页面和前端路由没什么关系。单页面是一种设计的模式,前端路由是一种技术。
3.前端获取ajax数据不需要前端路由也能行,后端给数据就可以了。那后端不用路由可以吗?也可以,后端收到请求给数据就是了。不管是用什么框架,它们的规则都是一样的。