NodeJs搭建中间层的一次实践

最早接触 nodeJs 作为中间层服务好像是在 17 年初,不过一直都没有机会进行实现(毕竟在此之前我都只是一个基层员工的角色).而虽然到这公司来成为一个前端 leader,但是好多地方还是不能放开手脚去干(不然我早就上 angular 或者 react 了),其实在很多地方都差不多,很少有人能随心所欲的追求自己想要的东西.

这段时间正好赶上项目扩展,而在之前的代码上我尝试进行服务器端渲染,但是由于之前的项目引入了一个第三方框架,巧合的是这个第三方框架在服务器端渲染出错.所以我抓住这个机会对之前的项目进行重构,尽量保证后面的代码不要依赖太多的第三方框架,过多的依赖会增加维护和扩展的难度.在重构的同时也对 node 作为中间层服务进行一次实践.

网上对 nodejs 的介绍太多了,这里就不再赘述,相关文章:

细说后端模板渲染、客户端渲染、node 中间层、服务器端渲染(ssr)
【探索】NodeJS 中间层搭建——楔子

我的理解

优点:

  1. UI 与数据模型的解耦
  2. 服务端只负责吞吐数据,减少服务端修改数据结构的情况,数据结构的解析放到前端开发人员身上
  3. 在数据量过大或步骤繁琐通信频繁的时候,考虑到前端性能或者前端网络稳定情况,可以将多个请求与数据量较大的处理过程放到 Nodejs 中间层去处理

缺点:

  1. 前端的工作量有所增加
  2. 多一层带来的性能问题

实践

  1. 使用 koa 搭建 node 中间层服务器
  2. 使用 koa-bodyparser 中间件解析请求参数
  3. 使用 koa-router 中间件配置路由
  4. 自定义 restful api 中间件
  5. 使用 axios 来转发封装请求
  6. 完善路由、控制器

具体代码见 node 中间层的一次实践

总结

经过这次实践,对 nodeJs 作为中间层服务有了更全面的认识,除了上面提到的好处之外,还可以解决跨多个域的问题.但是也发现一些不足,比如为了方便路由管理,所有的请求都走 node 中间服务器,导致了工作量大大增加.如果有相关实践的朋友请指出.

[越努力,越幸运!]