看看NodeJS中间件

随便看了篇文章,以前写的Laravel项目所用到的composer包,用于return之前的格式化处理和规范返回数据,原来这个操作就是中间件思想啊(果然对于数据量大的项目而言,Model层分来分去还是太臃肿了)。

这样的话中间件不使用php的composer包了,毕竟php异步和多线程方面真的弱的可以。我们直接使用更靠近操作系统底层的node,利用ES6的Promise和Generator处理异步数据和回调问题,用node去处理数据的格式化,过滤,频繁数据临时存储,多端接口派发等问题。更重要的一点是:单纯前端JS异步获取服务端数据这种做法是无法被爬虫抓取关键信息的,为了解决这个问题Vue出现了SSR服务端渲染的概念,其实就是在使用Node作为中间层渲染数据模版,前端负责填充,拿到的就是纯HTML页面,SEO完美方案诞生。

目前很多公司都在实践这种架构,最知名的,当属淘宝的midway架构,感兴趣的朋友可以关注一下,有本书叫 淘宝前后端分离实践
http://2014.jsconf.cn/slides/herman-taobaoweb/index.html#/

那么这样的模式下前后端的分离工作是啥流程呢?

后端的JAVA或者Python是不是可以直接返回大量数据了,反正都是不需要在页面渲染的JSON数据嘛,这样后端可以少做一些事儿,后端程序员不用满脑子想着这个数据前端要不要,直接把相关实体的所有数据返回吧,让我大前端Node来做数据过滤。

那么中间层做什么,简单一点就是数据过滤和接口转发。还是使用NodeJS做Web应用,所以还是少不了Express或者Koa,以及他们各自体系里的已有中间件。复杂的业务需求,可能还会需要数据缓存和持久化到硬盘吧,记得使用NoSQL数据库哦,中间层也有可能会使用superagent/cherio/eventproxy/asynchronous 等第三方模块进行一些web数据异步爬取的操作,因为这些数据可能主要只是给前端使用,没必要加入到公司的数据库中增加存储压力(可能都是些垃圾数据,网上一大堆的这种就别收集到数据库了,大数据不分析垃圾)。其实现在的前端自己在webpack配个express然后mock个假数据,这就是中间件。获取了API,提供数据给了前端代理,好吧又是一个前端抄袭后端JAVA的Repositories分层思想。

前端这时候的ajax不直接请求真实API,而是请求本地代理的中间件接口,这样也在一定程度上隐藏了后端接口地址,相对更安全些。并且在公司业务范围广但是不深的情况下,完全可以使用一套中间件对接多套前端项目,前提是这些项目的业务逻辑都相对单一,主要需要的是中间层的接口转发功能而不是让中间层做太多的数据存储操作(中间层的存储大多时候使用Redis或MongoDB,这种内存形数据库做好数据持续化后一般不需要担心IO瓶颈)

上班挺开心的,学学东西聊聊天,自己做做项目练手学学新知识。期待团队合作项目,期待大佬们对我的培训哈哈哈哈

你可能感兴趣的:(看看NodeJS中间件)