nodejs 在中间层主要是做了两件事
1.转发
转发的话性能和nginx比还是有差距的,当初我们测试代理一个静态文件,并发数和nginx是有差距的,所以这一点不是核心竞争力
2.业务logic处理
现在在创业公司野蛮生长阶段都是nodejs直接做后端,在公司扩张稳定之后便会引用go或则java做基础服务,nodejs做业务层处理,这样做主要是解决以下几个痛点
1.很多基础服务,比如用户模块,组织模块的一些基础方法在多个项目中用到,并且变动小,所以需要用go或则java沉淀出基础层,提高复用性.
2.尽量避免很多node服务和数据库直连,保证数据库的安全性,安全性包括数据安全和性能安全。
3.部分公司用node做数据渲染,缓存,这样可以很大程度的前端体验
3.1 比如后端返回的是json, 然后node把渲染好的页面直接返回给前端,这样能很大程度提高前端的体验 3.2 node 结合redis可以进行某些api数据的缓存,这样提高了api响应速度
4.在复杂的单页面运用中实现路由模块管理
4.1 比如我一个项目有订单模块和产品模块,其实是两个单页,通过访问不同的nodejs路由得到,这样不用一次性全部加载到前端,提高了用户体验