首页 前端知识 nodejs关于后端服务开发的探究

nodejs关于后端服务开发的探究

2025-03-19 11:03:40 前端知识 前端哥 137 50 我要收藏

前提

在当前的环境中关于web server的主流开发基本上都是java、php之类的,其中java spring系列基本上占了大头,而python之流也在奋起直追,但别忘了nodejs也是可以做这个服务的,只是位置有点尴尬,现在就来探究下nodejs做web server的当前现状。

nodejs简介

  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
  • Node.js底层用C++实现的,大部分模块都使用JavaScript编写,含大量的内置模块,使得程序可以脱离Apache、Nginx、IIS等web服务器,作为独立的服务器运行;

nodejs优势

  • 高效:Node.js使用事件驱动和非阻塞I/O模型,使其在处理大量并发连接时表现出色。
  • 轻量:Node.js的内存占用小,适合处理大量短小的请求。
  • 灵活:Node.js可以使用JavaScript进行全栈开发,前端和后端可以使用同一种语言。
  • 社区活跃:Node.js有着庞大的社区和丰富的第三方库。
node.js 和 其他语言(java,python等)比较

nodejs 是单线程,其他语言为多线程,由于设计的底层架构不一样,这也就导致nodejs在大并发处理上看似有着天生的弱势。但nodejs引入了非阻塞 I/O 操作、事件循环、异步编程、线程池、集群模块等多方面的设计,进一步拉近了与其他语言的距离,至少在大中型项目中的表现不会比java等项目差,若是大并发,也可以通过负债均衡,分发,主从数据库等运维方面相关缓解,亦可以通过引入部分其他语言来处理一部分业务,毕竟现在前后端分离,无需考虑接口从哪来,再加上微服务架构的出现,跨语言的开发、联合、与分离也是一件很方便快捷的事情了,因此无需担忧nodejs的使用问题。(腾讯,阿里这种大公司都同样在使用呢!)
而使用nodejs的好处则是,项目开发简单快速,功能迭代将更加迅捷,前后端统一语言开发效率将大大提升。

nodejs框架比较

Express、koa等框架时代

Express、koa等框架的出现让js开发后端变得更加的快捷与简单,两者的出现亦让nodejs后端的开发提升了一个档次。因此也出现了大量相关开发示例与项目。但这个时代项目都存在一个问题,那就是项目通常较小。亦或者越开发越觉得项目难以管理

Midway、nestjs等框架时代

这两种类型的框架,在express/koa等基础之上引入了新的知识与概念,也因此让nodejs框架开发后端越发趋于完善

Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用的框架。它使用渐进式 JavaScript,构建并完全支持 TypeScript(但仍然允许开发者使用纯 JavaScript 进行编码)并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数式反应式编程)的元素。

Midway 基于 TypeScript 开发,结合了面向对象(OOP + Class + IoC)与函数式(FP + Function + Hooks)两种编程范式,并在此之上支持了 Web / 全栈 / 微服务 / RPC / Socket / Serverless 等多种场景,致力于为用户提供简单、易用、可靠的 Node.js 服务端研发体验。

引入typescript让js的弱类型逐渐变成偏强类型语言,使其在大型项目管理与合作开发上越发的成为了可能,引入新的开发方式与规范,让nodejs后端的开发形成了一个新的可能性。类似java spring的诞生,使得nodejs终于走出了重要的一步

nodejs的使用

若你的项目比较中小型,需要快速迭代,若你的项目没有多大的人手,若你的项目需要想要使用非阻塞 I/O 操作、异步编程等。亦或者是中大型项目的部分业务改造,其实都可以选择nodejs来开发后端了。毕竟中小项目无需担心nodejs出问题,大型项目也抗的住,而超大型,巨型的项目到时候想要切换语言还会缺这点人,怕这点事吗?
nestjs学习: https://nest.nodejs.cn/
midway官网: https://www.midwayjs.org/docs

个人更喜欢nestjs,不为别的就那编写方式与springboot类型的风格就让我喜欢。同时也更容易切换成java

转载请注明出处或者链接地址:https://www.qianduange.cn//article/24051.html
标签
评论
发布的文章

动态规划感悟1

2025-03-20 12:03:52

华为NAS真实测评!

2025-03-20 12:03:52

Java设计模式之代理模式

2025-03-20 12:03:51

Linux 锁、线程同步

2025-03-20 12:03:48

大家推荐的文章
会员中心 联系我 留言建议 回顶部
浏览器升级提示:您的浏览器版本较低,建议您立即升级为知了极速浏览器,极速、安全、简约,上网速度更快!立即下载
复制成功!