本人在学习前后端分离的时候发现了一幅图(传说这是淘宝的):
图片取自:淘宝前后端分离实践 看完这幅图就出现了几个问题:
- NodeJs自身不也可以做JAVA的东西吗?为什么还要要去用JAVA来处理业务逻辑什么的?
- NodeJs在这幅图里面是一个中间层的作用,可是图上面的功能点的 “转发数据,串接服务” 与 “路由设置,控制逻辑” 就不是很理解,具体其实是什么意思?能举个简单例子就更好了;
- NodeJs是怎么与前端框架共享路由的?是用Jade,Ejs等模板的意思吗?
- 前端也有MV*的框架啊,本人觉得AngularJs就很好的前端MVC框架啊,为什么还有由NodeJs来控制路由和模板?
- 前端数据可以通过AJAX等异步请求获取啊,为什么要通过NodeJs来渲染?是有什么好处吗?
以上有什么理解不对的地方欢迎大神们指出与讨论,谢谢大家指导。
1、nodejs对于数据的运算、逻辑处理,及数据库的操作不如java方便、快捷、稳定 2、你自己也说了nodejs是起中间层的作用,即根据客户端不同请求来做相应的处理或渲染页面,处理时可以是把获取的数据做简单的处理交由底层java那边做真正的数据持久化或数据更新,也可以是从底层获取数据做简单的处理返回给客户端 3、什么叫与浏览器共享路由? 4、关于前后端MVC的区分,自己去找资料、书籍看吧 5、如果客户端再请求页面时,服务器端可以把相应的数据在服务端给加载好,这样就免去了页面加载后再重新请求数据的过程,节省请求次数
有几点给你讲清楚: 第一:nodejs是后端语言,别和前端扯上关系,这个相当于做一嗰java里面的servlet核心,或者是.net的c#,只不过是用了javascript的语法减轻程序员多语言编程的复杂性。 第二:阿里这样的模型可以看出MVC的逻辑,当然,大家都说为什么nodejs可以实现java的还要加多一层,阿里经营了那么久一直用java,肯定不可能立马用node全程替代掉java,这是一嗰技术沉淀的问题,当然,nodejs运算能力比较低这个问题解决的方法也是很多,这也是阿里选择的方法之一。 第三:nodejs路由的实现逻辑是把前端静态页面代码当成字符串发送到客户端,他们并不是可以互相共享,简单理解可以理解为路由是提供给客户端的一嗰api接口,只不过返回的数据是页面代码字符串而已。你可以就把Nodejs当成跟前端交互的api。 总得来说,nodejs的作用在mvc中相当于C(控制器).应该可以说是Nodejs的响应能力较强吧简单形容