node为什么要做中间层呢?

后端出于 性能 和别的原因,提供的接口所返回的 数据格式也许不太适合前端 直接使用。
前端所需的 排序功能、 筛选功能 ,以及到了视图层的 页面展现 ,也许都需要 对接口 所提供的 数据进行二次处理 。这些处理虽可以放在前端来进行,但也许数据量一大便会浪费浏览器性能。因而现今,增加node端便是一种良好的解决方案。
其实提出前后端分离、是为了更好的解决项目的耦合度、不在互相等待、不再互相依赖
如果加入node这一层其实是为了更好的解耦
node这一层通常是由前端来做、node调用java提供的接口、将数据再封装、拓展、形成自己要的结构render到客户端
很多时候会看到html下面做运算、做分组、其实就是这个问题:后端给的数据结构并不是前端想要的 或者 一些逻辑实在是太简单了、想给前端人员来做
那浏览器上做运算、做分组、以及一系列操作是一定会影响性能的、尤其数据量很大的情况
那node中间层其实就相当于把很多这样的代码放入其中、也可以替后端分担一些简单的逻辑、又可以用模板引擎自己掌握前台、
换言之、如果用node+模板引擎直接做、那前后端相当于没有分离、也是互相依赖、等待、node的后端效果也不是很好
如果用java+jsp、那也是没有分离、互相依赖互相等待、前后端要在沟通上花很多时间
总而言之、前后台的分离更加明确、前台不在过度依赖后台、后端不再过度等待结合前端、方便解耦、降低沟通成本

在请求后端数据过程中,你是否遇到过,数据结构完全不是你想要的(当然前端完全可以整合成自己想要的数据,但是数据量比较大,在浏览器端做运算,数组分组,包装这种处理显然影响了性能),跨域,或者说后端接口改了,你却不知道。而引入nodejs中间层正好能帮我们这边这些问题 ,通常node层就是前端在做,调用java提供api,进行简单的业务逻辑处理,运算,分组,包装自己想要的数据,前端想要的都在你的控制中,完美降低沟通成本,降低项目的耦合度,实现前后端分离。由前端来做controller层,甚至一些简单的业务逻辑,这样加快了前端开发进程,同时让java后端更加专注于业务处理。

你可能感兴趣的:(面试,node做中间层)