node 最大的改良架构就是'增加了中间层', 前后端分离, 使用 node 来做'BBF(backend of frontend)'在传统后端加入了 node 这一层, 通过此有两点好处, 前端接管了 view 层, 后端渲染也开始全部由前端掌控, 另一个就是接口层增加了一层.
在前后端分离的天然选择下, node 中间层可以承担更多的责任.
node 中间层可以做以下这些方面的工作:
代理: 在开发环境下, 我们可以利用代理来, 解决最常见的跨域问题; 在线上环境下, 我们可以利用代理, 转发请求到多个服务端.
缓存: 缓存其实是更靠近前端的需求, 用户的动作触发数据的更新, node 中间层可以直接处理一部分缓存需求.
限流: node 中间层, 可以针对接口或者路由做响应的限流.
日志: 相比其他服务端语言, node 中间层的日志记录, 能更方便快捷的定位问题 (是在浏览器端还是服务端).
监控: 擅长高并发的请求处理, 做监控也是合适的选项.
鉴权: 有一个中间层去鉴权, 也是一种单一职责的实现.
路由: 前端更需要掌握页面路由的权限和逻辑.
服务端渲染: node 中间层的解决方案更灵活, 比如 SSR, 模板直出, 利用一些 JS 库做预渲染等等.
来源: http://www.css88.com/qa/node-js/10749.html