随着前端技术的发展,JavaScript语言更新换代,语法更加优雅,功能逐渐强大,重视度不断提升。特别在ES5(EcmaScript)标准化JavaScript第5版的出现,JavaScript语言发展到了巅峰时期,这时候逐步从webkit浏览器内核ChromeV8JS解析引擎孵化出了Node.js:能够支持使用JavaScript语言开发应用的运行时环境,提供与后端能力媲美的服务处理功能。
因此,由于Node.js源自前端JavaScript语言诞生,具有很多独特的优势:
- 满足标准化后端输出的各种请求、响应场景
- 前端资源处理的支持度高
- 共享前端js周边生态
- 支持单页面应用的SSR服务端渲染
满足标准化后端输出的各种请求、响应场景
浏览器标准化数据请求、响应报文。当前主流前后端分离的web应用开发,细分为前端页面渲染和后端API输出响应报文。其中前端最终是可以作为静态资源发布,而后端需要提供响应的报文。在web通信方面,提供的一种标准是restful,即GET、POST、PUT、PATCH、DELETE,增删改查的HTTP请求类型。
Node.js提供与后端一致标准化的HTTP请求响应方案。对于通信来说,最希望的就是通信双方使用标准化的协议。Node.js的http响应模块提供了request、response对象,同样可以输出后端能够输出的各种场景报文场景。
前端资源处理的支持度高
与其他后端语言相比,Node.js能够搭配插件具备独特有效进行前端资源处理的能力。比如,通过webpack插件,能够对需要对js文件进行逻辑处理、合并、压缩处理后再输出,基于Node.js很方便使用js的方法进行处理,但其他语言很难针对js资源内部进行处理。
共享前端js周边生态
Node.js开发应用时,可以使用各大社区提供的js资源,有效实现所需业务需求。在JavaScript领域,是有世界范围内较好的技术生态社区支持的,如npmjs社区,开发者可以通过社区提供的共享资源,减少开发成本,提高生产力。
支持单页面应用的SSR服务端渲染
React、Vue单页面应用首次加载白屏问题。当下主流的开发模式为:前端使用如React、Vue开发的单页面应用前端项目,后端为Java等面向接口输出的项目,两者有机统一。而随着单页面项目的发展,客户端渲染成本越来越高,首次加载会出现一直白屏问题。因此,我们需要服务器渲染技术ServerSideRender(SSR)。
Node.js友好支持SSR服务端渲染。前端的单页面应用项目,经过简单改造后能够支持SSR服务端渲染。这种技术的好处是:既能符合SEO搜索引擎友好,又能避免首屏白屏问题。例如,React的服务端渲染框架Next.js,Vue的服务器端渲染框架Nuxt.js,都是基于Node.js为基础的优秀解决方案。
Node.js发展方向
基于Node.js为基础的衍生框架的日益发展。这几年的前端发展历程中,产生了很多基于Node.js平台为基础衍生的各种插件、框架,Node.js推动了前端在前端工程化、服务端能力的发展。比如:企业级中后台框架eggjs,方便进行开箱即用的基于Node.js为基础的服务端框架,方便了很多中小企业快速低成本开发中后台项目的需要。
Node.js衍生分支deno逐步支持JavaScript、TypeScript编译。随着前端工程化、标准化的演进,越来越严谨、标准。于是TypeScript语言应运而生,提供强类型、面向对象等优秀特性。而Node.js官方团队逐步衍生出分支软件deno,天然支持JavaScript和TypeScript。Node.js越来越推动标准化、工程化发展。
写在最后
Node.js能够天然支持JavaScript语言,对前端友好,满足标准化后端输出、优秀的前端资源处理能力、共享前端js周边生态和支持单页面应用的SSR服务端渲染等众多特性,决定了与其他后端框架的不同。对于需要前后端配合的项目,Node.js具有大的优势,是值得深入研究的优秀框架。