node做中间层的一些小知识

node做前后端的中间层

前提:
公司项目一直是用node做了中间层,也一直好奇为什么要是用node,所以就了解一下node做中间层的作用。

之后查资料的时候发现,蚂蚁金服,淘宝也使用了类似的方法,使用nodeJs作为中间层去请求真实的后端地址,拿到后台数据。
然后就翻找了一些技术大佬做的总结,这边整理了一下。

传统的架构是‘前端-后端’,加了node做中间层变成了‘前端-node-后端’,这样架构的好处是更好的实现前后端分离。

前后端分离

最常见的前后端分离的例子是SPA,数据都是后端通过异步(AJAX/JSON)接口拿到的,而前端只负责展示。
现阶段的SPA开发模式中,接口通常是按照逻辑来展现数据的,有时候为了提高效率,后端会根据前端需要的数据结构做数据封装,这就意味这后端还是做了view层的工作,违背了前后端分离的初衷
为什么前后端分离

  • 关注点分离
  • 职责分离
  • 对的人做对的事
  • 更好的共建模式
  • 快速的反应变化

node的意义

业务驱动

前端对于页面所需要的的数据有更好的理解,每个页面要用到哪些接口,每个接口要用到哪些字段前端是最清楚的,实际业务开发中,前端页面的需求会经常发生变化,需要修改字段或者数据结构,所以对接页面这部分的接口由前端直接开发是非常合适的,可以显著减少沟通成本。

架构需要

面向用户的接口由node中间层负责以后,真正的服务端可以专注于提供基于领域模型的对内接口,做微服务。

性能满足

node天生异步,js是一门单线程语言,所以node在实现的时候,需要借助libuv来实现异步,libuv为node提供了线程池,事件池,异步I/O等能力,正式因为其中网络I/O的异步能力,可以让node做接口聚合时,能够更高效的异步并发处理。

成本较低

node使用js开发,只需要学习简单的api,前端开发者就可以无障碍使用,学习成本低

为什么使用node

  • 前端熟悉的语言,学习成本低
  • 都是js,可以前后端复用
  • 体质适合:事件驱动、非阻塞I/O
  • 适合IO密集型业务
  • 执行速度也不差

node可以做什么

  • 代理:在开发环境下,我们可以利用代理,解决最常见的跨域问题;在线上环境下,我们可以利用代理,转发请求到多个服务端(接口转发)
  • 缓存:缓存其实是更靠近前端的需求,用户的动作触发数据的更新,node中间层可以直接处理一部分缓存需求
  • 限流:node中间层,可以针对接口或者路由做响应的限流。
  • 日志:相比其他服务端语言,node中间层的日志记录,能更方便快捷的定位问题(是在浏览器端还是服务端)
  • 监控:擅长高并发的请求处理,做监控也是合适的选项
  • 鉴权:有一个中间层去鉴权,也是一种单一职责的实现
  • 路由:前端更需要掌握页面路由的权限和逻辑
  • 服务端渲染:node中间层的解决方案更灵活,比如与SSR、模板指出、利用一些js库做预渲染等等
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值