Nodejs在前后端分离中的作用与地位应该怎么去理解?
发布于 5 年前 作者 chris9311 24206 次浏览 最后一次编辑是 4 年前 来自 问答

本人在学习前后端分离的时候发现了一幅图(传说这是淘宝的):

前后端分离.png

图片取自:淘宝前后端分离实践 看完这幅图就出现了几个问题:

  1. NodeJs自身不也可以做JAVA的东西吗?为什么还要要去用JAVA来处理业务逻辑什么的?
  2. NodeJs在这幅图里面是一个中间层的作用,可是图上面的功能点的 “转发数据,串接服务” 与 “路由设置,控制逻辑” 就不是很理解,具体其实是什么意思?能举个简单例子就更好了;
  3. NodeJs是怎么与前端框架共享路由的?是用Jade,Ejs等模板的意思吗?
  4. 前端也有MV*的框架啊,本人觉得AngularJs就很好的前端MVC框架啊,为什么还有由NodeJs来控制路由和模板?
  5. 前端数据可以通过AJAX等异步请求获取啊,为什么要通过NodeJs来渲染?是有什么好处吗?

以上有什么理解不对的地方欢迎大神们指出与讨论,谢谢大家指导。

9 回复

1、nodejs对于数据的运算、逻辑处理,及数据库的操作不如java方便、快捷、稳定 2、你自己也说了nodejs是起中间层的作用,即根据客户端不同请求来做相应的处理或渲染页面,处理时可以是把获取的数据做简单的处理交由底层java那边做真正的数据持久化或数据更新,也可以是从底层获取数据做简单的处理返回给客户端 3、什么叫与浏览器共享路由? 4、关于前后端MVC的区分,自己去找资料、书籍看吧 5、如果客户端再请求页面时,服务器端可以把相应的数据在服务端给加载好,这样就免去了页面加载后再重新请求数据的过程,节省请求次数

@hengguoguo 不是与浏览器,不好意思,是与前端。

NodeJs与前端框架共享路由?你是不是理解有误。nodejs是创建路由规则,控制整个web的访问逻辑, 供前端使用。这是我个人理解

其实这是个前端工程化的问题~

5…这个问题,主要是可以减少页面请求,更主要的是seo和cdn的需要

好好学好node,做个全栈会对web有新的认识,那时候就是前后端融合了

有几点给你讲清楚: 第一:nodejs是后端语言,别和前端扯上关系,这个相当于做一嗰java里面的servlet核心,或者是.net的c#,只不过是用了javascript的语法减轻程序员多语言编程的复杂性。 第二:阿里这样的模型可以看出MVC的逻辑,当然,大家都说为什么nodejs可以实现java的还要加多一层,阿里经营了那么久一直用java,肯定不可能立马用node全程替代掉java,这是一嗰技术沉淀的问题,当然,nodejs运算能力比较低这个问题解决的方法也是很多,这也是阿里选择的方法之一。 第三:nodejs路由的实现逻辑是把前端静态页面代码当成字符串发送到客户端,他们并不是可以互相共享,简单理解可以理解为路由是提供给客户端的一嗰api接口,只不过返回的数据是页面代码字符串而已。你可以就把Nodejs当成跟前端交互的api。 总得来说,nodejs的作用在mvc中相当于C(控制器).应该可以说是Nodejs的响应能力较强吧简单形容

@mzTeamMeatMan 受教了,谢谢

考虑这个问题的出发点要充分结合业务需要及现状,技术本身并不是限制。

回到顶部