Ich war noch nie mit Node konfrontiert. Ich habe oft Artikel gelesen, in denen es hieß, dass Node als mittlere Ebene verwendet wird. Ich weiß nicht, was das konkret bedeutet. Welches Problem wurde beispielsweise im Programm gelöst? Wenn das Rendering-Problem gelöst ist, liegt es auch auf der Seitenseite und das Front-End-Framework wurde gelöst. Könnte man sagen, dass das Back-End das Front-End rendert Framework und stopft es dann alles in das Frontend?
很多项目中后端应用往往不止一个服务,而是一群各司其职的服务,比如nginx的存在就是因为服务器上运行着多个服务,而不同的网络请求由不同的服务处理,需要在这些服务前假设一层nginx做为代理,将请求分发给不同的服务,nginx在这里的角色就相当于中间层。
对于一个比较复杂的web站点,页面中的请求通常分为两种,请求页面与请求数据(ajax)。如果后端是个单体应用,当发现所有请求量太多应付不过来的时候就可以考虑做这样的分离,将处理页面渲染的请求分给另一个服务,挡在前面,自己只负责数据相关的请求。nodejs擅长处理io密集型任务,很适合做处理页面渲染的服务,于是很多人选择了nodejs。淘宝也是类似的架构,据说现在所有淘宝的页面都是由node服务渲染的。
讲道理就是用nodejs做静态资源管理和请求转发。
做到后端只管数据接口,前端负责路由,静态资源。
加了node的中间层,可以让前端处理view层和control层,后端只负责处理model层。前后端分离比较彻底,分工更明确一些吧。
另外就是有些框架在服务器不是node的时候SEO比较难做。加了node中间层后比较好做SEO
node就是链状执行
请求接收 -> 中间件1 -> 中间件2 -> ... 中间件n ... -> 返回
中间件就是某一个处理操作
可以看看淘宝的midway。可以说核心概念都有了。