node最大的改良架构就是‘增加了中间层’,前后端分离,使用node来做‘BBF(backend of frontend)’在传统后端加入了node这一层,通过此有两点好处,前端接管了view层,后端渲染也开始全部由前端掌控,另一个就是接口层增加了一层。
在前后端分离的天然选择下,node中间层可以承担更多的责任。
node中间层可以做以下这些方面的工作:
代理:在开发环境下,我们可以利用代理来,解决最常见的跨域问题;在线上环境下,我们可以利用代理,转发请求到多个服务端。
缓存:缓存其实是更靠近前端的需求,用户的动作触发数据的更新,node中间层可以直接处理一部分缓存需求。
限流:node中间层,可以针对接口或者路由做响应的限流。
日志:相比其他服务端语言,node中间层的日志记录,能更方便快捷的定位问题(是在浏览器端还是服务端)。
监控:擅长高并发的请求处理,做监控也是合适的选项。
鉴权:有一个中间层去鉴权,也是一种单一职责的实现。
路由:前端更需要掌握页面路由的权限和逻辑。
服务端渲染:node中间层的解决方案更灵活,比如SSR、模板直出、利用一些JS库做预渲染等等。
node在现在为止算是前端不可分割的一部分了,那么从当初的无人问津,到现在的前端mv*架构采用node和webpack之外,许多的中大型公司也采用后端+node中间层+前端的模式。有人会问了,node的职责转发api,nginx不就能做到吗
Node.js是一个Javascript运行环境。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。Node.js是单进程、单线程运行机制,通过事件轮询(event loop)
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!