Node.js做Web后端优势为什么这么大?

我是工作8年的软件开发工程师,其中6年前端开发,2年ASP.NET开发,深刻体会前后端技术的变革,特别是Node.js带来的巨大变革优势。

随着前端技术的发展,JavaScript语言更新换代,语法更加优雅,功能逐渐强大,重视度不断提升。特别在ES5(EcmaScript)标准化JavaScript第5版的出现,JavaScript语言发展到了巅峰时期,这时候逐步从webkit浏览器内核ChromeV8JS解析引擎孵化出了Node.js:能够支持使用JavaScript语言开发应用的运行时环境,提供与后端能力媲美的服务处理功能。

因此,由于Node.js源自前端JavaScript语言诞生,具有很多独特的优势:

  • 满足标准化后端输出的各种请求、响应场景
  • 前端资源处理的支持度高
  • 共享前端js周边生态
  • 支持单页面应用的SSR服务端渲染

Node.js做Web后端优势为什么这么大?

满足标准化后端输出的各种请求、响应场景

浏览器标准化数据请求、响应报文。当前主流前后端分离的web应用开发,细分为前端页面渲染和后端API输出响应报文。其中前端最终是可以作为静态资源发布,而后端需要提供响应的报文。在web通信方面,提供的一种标准是restful,即GET、POST、PUT、PATCH、DELETE,增删改查的HTTP请求类型。

Node.js做Web后端优势为什么这么大?

Node.js提供与后端一致标准化的HTTP请求响应方案。对于通信来说,最希望的就是通信双方使用标准化的协议。Node.js的http响应模块提供了request、response对象,同样可以输出后端能够输出的各种场景报文场景。

前端资源处理的支持度高

与其他后端语言相比,Node.js能够搭配插件具备独特有效进行前端资源处理的能力。比如,通过webpack插件,能够对需要对js文件进行逻辑处理、合并、压缩处理后再输出,基于Node.js很方便使用js的方法进行处理,但其他语言很难针对js资源内部进行处理。

Node.js做Web后端优势为什么这么大?

共享前端js周边生态

Node.js开发应用时,可以使用各大社区提供的js资源,有效实现所需业务需求。在JavaScript领域,是有世界范围内较好的技术生态社区支持的,如npmjs社区,开发者可以通过社区提供的共享资源,减少开发成本,提高生产力。

Node.js做Web后端优势为什么这么大?

支持单页面应用的SSR服务端渲染

React、Vue单页面应用首次加载白屏问题。当下主流的开发模式为:前端使用如React、Vue开发的单页面应用前端项目,后端为Java等面向接口输出的项目,两者有机统一。而随着单页面项目的发展,客户端渲染成本越来越高,首次加载会出现一直白屏问题。因此,我们需要服务器渲染技术ServerSideRender(SSR)。

Node.js友好支持SSR服务端渲染。前端的单页面应用项目,经过简单改造后能够支持SSR服务端渲染。这种技术的好处是:既能符合SEO搜索引擎友好,又能避免首屏白屏问题。例如,React的服务端渲染框架Next.js,Vue的服务器端渲染框架Nuxt.js,都是基于Node.js为基础的优秀解决方案。

Node.js做Web后端优势为什么这么大?

Node.js发展方向

基于Node.js为基础的衍生框架的日益发展。这几年的前端发展历程中,产生了很多基于Node.js平台为基础衍生的各种插件、框架,Node.js推动了前端在前端工程化、服务端能力的发展。比如:企业级中后台框架eggjs,方便进行开箱即用的基于Node.js为基础的服务端框架,方便了很多中小企业快速低成本开发中后台项目的需要。

Node.js做Web后端优势为什么这么大?

Node.js衍生分支deno逐步支持JavaScript、TypeScript编译。随着前端工程化、标准化的演进,越来越严谨、标准。于是TypeScript语言应运而生,提供强类型、面向对象等优秀特性。而Node.js官方团队逐步衍生出分支软件deno,天然支持JavaScript和TypeScript。Node.js越来越推动标准化、工程化发展。

Node.js做Web后端优势为什么这么大?

写在最后

Node.js能够天然支持JavaScript语言,对前端友好,满足标准化后端输出、优秀的前端资源处理能力、共享前端js周边生态和支持单页面应用的SSR服务端渲染等众多特性,决定了与其他后端框架的不同。对于需要前后端配合的项目,Node.js具有大的优势,是值得深入研究的优秀框架。

以上是我的观点,希望对你有所帮助。

先问是不是,再问为什么,个人觉得nodejs 做后端没有啥优势

优势: js可以写服务端了。

不足: 异步单线程,业务复杂代码处理起来很费劲。生态不足没有现有后端语言那些完善的企业解决方案。

小公司前期基本都会原则node后期基本都会抛弃node

nodejs做后端非常大的优势在于 性能非常高 内存非常低 脚本开发很快 分布式不行 擅长单机

java相当耗内存 性能比nodejs稍微高一点点 擅长企业级 分布式 大数据 搜索引擎 等等热门技术

golang 性能超了java 内存非常低 第三方库较少

Node.js学习非常简单,上手比较容易,非常适合快速开发出一个产品原型。

使用Node.js作为后端和前端有着统一技术栈都是使用JavaScript,这有利于前端开发工程师无缝进阶为全栈工程师。尤其是最近比较火的Serverless,各大公司也是纷纷把Node.js作为主力语言,归功于Serverless的便利性,这让Node.js在跨多端开发上优势非常明显,一个前端开发工程师就能够独立hold住整个产品的开发。

Node.js自身的生态非常完善、社区非常活跃,拥有编程语言里最多的依赖包,虽然还不能和PHP、Java相比,但是处理大多数业务上完全足够。Node.js可以有效降低招人成本、用工成本以及时间成本。

nodejs可以使用flow类型检查 类型方面问题不大 高性能异步IO是主要亮点 复杂流程控制 cpu密集计算 npm包规模是很大 但可靠性难以保证 这些缺点导致node难以大规模应用到比较重要的系统里

简单的业务可以用来做快速开发,复杂的业务还是需要专业的后端语言来做

根本就不大,你看看哪个企业级应用使用nodejs了?

nodejs能够拿得出手的就是单线程的性能。在复杂业务和架构级应用上使用nodejs非崩溃了不可。java在稳定性、可调试性、业务分层等方面是nodejs无法比拟的。

创业公司可以偶尔用用,最后随着业务复杂度提高还是会回到java的怀抱。

用nodejs写了一阵子后端,开发起来就是快,做一个简单的应用或者自己练手还行,真的面向企业级还是很不适应,

1.找开源的项目和资料很难找到业务场景类似的,基本都要靠自己撸代码

2.因为函数都是异步的,对流程方面、事务控制不是很友好,还需要借助async/await关键字

作为纯后端,nodejs用起来还是不方便

我用nodejs做MMORPG游戏服务端,当初做这个决定还因为人少没专职服务端,刚好网易推出了pomelo,看了眼感觉上手简单就用了,开发一年后基本还是不错的,也好在MMORPG不是开放性的,多玩家同步要求不大,也支持分布式(副本地图做成分布式)。但代码写的是真难看了,好几次想换Csharp重构(前端是unity+Csharp开发),每次开个头想了想还能凑合用就放弃了

原创文章,作者:秒收网,如若转载,请注明出处:https://www.miaoshou.cc/5420.html

(0)
上一篇 2021年6月24日 15:28
下一篇 2021年6月24日 15:32

相关推荐

发表回复

您的电子邮箱地址不会被公开。