网易首页 > 网易号 > 正文 申请入驻

Node.js 是什么?为什么要用它?

0
分享至

  一、什么是Node.js

  Node.js是Ryan Dahl于2009年5月基于Chrome V8引擎构建的一个开源和跨平台的JavaScript运行环境。主要在Windows、Linux、Unix、MacOSX等不同平台上运行。

  拓展:Chrome V8引擎是谷歌开源的一个高性能JS引擎,并用在谷歌浏览器中,可以编译、执行JS代码。

  二、Node.js的发展

  2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包。

  2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js的发展。

  2011年7月,Node.js在微软的支持下发布Windows版本。

  2015年10月,Node.js 5.2.0版本成为首个LTS(长期支持)版本。

  2016年年底,6.0版本支持95%以上的ES6特性,7.0版本通过flag支持async函数,全面支持99%的ES6特性。

  2017年,发布了7.6和8.0版本,可以不通过flag使用async函数和支持async Hooks、N-API等特性。

  2018年,发布了10.0和11.0版本,新增http2模块,将npm从v5.7更新到了v6,并且增强了对ESMModules的支持和增加了多线程Worker Threads。

  三、Node.js 架构

  Node Standard Library:Node.js标准库,对外提供的JavaScript接口,如模块http、buffer、fs、stream等。

  Node bindings:是JavaScript与C++连接的桥梁,对下层模块进行封装,向上层提供基础的API接口。

  V8:Google开源的高性能JavaScript引擎,使用C++开发,并且应用于谷歌浏览器。

  Libuv:一个跨平台的支持事件驱动的I/O库。使用C和C++语言为Node.js所开发的,同时也是I/O操作的核心部分,如读取文件和OS交互。

  C-ares:是一个异步DNS解析库。

  Low-Level Components:提供了http解析、OpenSSL、数据压缩(zlib)等功能。

  四、Node.js的特点

  4.1 单线程

  Node保持了JS在浏览器中单线程的特点。单线程最大好处是不用像多线程编程那样处处在意状态的同步问题,没有死锁的存在,也没有线程上下文切换的开销。

  单线程也有其弱点,主要表现在三方面:无法利用多核CPU;错误会引起整个应用退出,应用的健壮性值得考研;大量计算会占用CPU导致无法继续调用异步I/O。

  为解决上述问题,Node.js使用child_process来解决单线程中大计算量的问题。通过将计算分发到各个子进程,可以将大量计算分解掉,然后再通过进程之间的事件消息来传递结果。

  4.2 异步I/O

  在Node.js中,绝大多数的操作都以异步的方式进行调用,从文件读取到网络请求,均是如此。异步I/O意味着每个调用之间无须等待之前的I/O调用结束,在编程模型上可以提升效率。如果存在两个文件读取任务,最终的耗时只取决于最慢的那个文件读取耗时,对于同步I/O而言,它的耗时是两个任务之和。

  4.3 事件驱动机制

  Node.js采用事件驱动和异步回调的机制。在执行代码的时候,主线程从上往下依次执行,遇到有需要回调的地方,就将此处加入到事件队列中,然后主线程继续往下走,直到运行结束以后才去执行事件队列中的回调。

  Node.js去执行事件队列中的事件时,如果遇到回调,依然是按照顺序添加进入事件队列,主线程依次往下执行,遇到回调就添加,直至执行完毕。

  Node.js是一个单线程多进程的。Node.js进程创建一个循环,每个循环就是一个周期,在循环中会从事件队列里查看是否有事件需要处理,如果有就去除事件并执行相关的函数。对于阻塞事件的处理在幕后使用线程池来确保工作的运行,而不占用主循环流程。

  4.4 跨平台

  Node.js是跨平台的,即同样的一套JS代码都可以部署运行在Windows、Linux、OSX等平台。这主要得益于Node在操作系统与Node上层模块系统之间构建了一层平台层架构libuv。

  五、Node.js 适用场景

  5.1 I/O密集型场景

  Node.js异步I/O的特点使得它可以轻松面对I/O密集型的业务场景,处理效率将比同步I/O高,虽然同步I/O可以采用多线程或者多进程的方式进行,但是相比Node.js自带异步I/O的特性来说,将增加对内存和CPU的开销。

  5.2 高并发场景

  针对高并发请求场景,Node.js的异步I/O以及事件回调特点可以高效的处理并发请求。

  5.3 ResutFul API

  这是Node.js最理想的应用场景,可以处理数万条连接,本身没有太多的逻辑,只需要请求API,组织数据进行返回即可。它本质上只是从某个数据库中查找一些值并将它们组成一个响应。由于响应是少量文本,入站请求也是少量的文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的API需求。

  5.4 基础工具

  可以作为基础工具,前端领域中的编译器、构建工具、搭建脚手架等。比较出名的例如 Webpack、Gulp 。

  5.5 大量Ajax请求的应用

  例如个性化应用,每个用户看到的页面都不一样,缓存失效时,需要在页面加载的时候发起Ajax请求,Node.js能响应大量的并发请求。总而言之,Node.js适合运用在高并发、I/O密集、少量业务逻辑的场景。

  六、结语

  远齐科技基于成熟的软件架构、互联网、物联网、大数据、人工智能等技术构建面向未来的集成开发平台系统。在自有集成开发平台基础上,基于最佳业务实践开发出丰富的软件功能模块、业务系统,为企业提供高效的定制化开发服务。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
随着火箭三连胜,快船惨败,湖人逆转,西部排名乱了,火箭回前4

随着火箭三连胜,快船惨败,湖人逆转,西部排名乱了,火箭回前4

体育一点就通
2026-01-21 16:18:34
李亚鹏确认,靠卖北京房子和直播卖茶具,5000万债务已还清!

李亚鹏确认,靠卖北京房子和直播卖茶具,5000万债务已还清!

荆楚寰宇文枢
2025-12-31 21:55:47
考古王菲李亚鹏的微博,竟然诡异的磕到了

考古王菲李亚鹏的微博,竟然诡异的磕到了

金牌舆情官
2026-01-20 21:19:04
卡扎菲死前惨状:被扇耳光吐口水,对暴打他的士兵留下遗言

卡扎菲死前惨状:被扇耳光吐口水,对暴打他的士兵留下遗言

旧时楼台月
2026-01-21 12:35:15
大瓜!闫学晶“大校军衔”被实锤造假,十年假大校现形记!

大瓜!闫学晶“大校军衔”被实锤造假,十年假大校现形记!

老特有话说
2026-01-20 15:48:09
马斯克目前财富达7800亿美元 领先第二近5100亿美元

马斯克目前财富达7800亿美元 领先第二近5100亿美元

手机中国
2026-01-20 17:09:17
亲弟弟强奸追杀妻子,丈夫发声

亲弟弟强奸追杀妻子,丈夫发声

中国新闻周刊
2026-01-20 18:42:33
83年,乔冠华与章含之在家中拍了最后一张合影,乔的笑容有些勉强

83年,乔冠华与章含之在家中拍了最后一张合影,乔的笑容有些勉强

历史甄有趣
2026-01-04 09:30:24
取代杜锋?CBA最强主教练示好广东队,朱芳雨敲定“换帅”人选

取代杜锋?CBA最强主教练示好广东队,朱芳雨敲定“换帅”人选

绯雨儿
2026-01-21 14:20:29
李湘风波再发酵!家境被扒底朝天,父母身份曝光,原来何炅没说错

李湘风波再发酵!家境被扒底朝天,父母身份曝光,原来何炅没说错

素衣读史
2026-01-21 13:57:53
戚薇一家四口澳门游,女儿Lucky打耳洞爱美,儿子脸肉嘟嘟

戚薇一家四口澳门游,女儿Lucky打耳洞爱美,儿子脸肉嘟嘟

一窥究竟
2026-01-21 14:28:35
郭晶晶没想到,被国家队开除的田亮,如今以这种方式让人刮目相看

郭晶晶没想到,被国家队开除的田亮,如今以这种方式让人刮目相看

无心小姐姐
2026-01-09 17:46:24
回顾“91女神”琪琪:五官出众,却因天真让自己“受伤”

回顾“91女神”琪琪:五官出众,却因天真让自己“受伤”

就一点
2025-11-22 10:36:39
亚洲第一赌场新东泰覆灭记:性交易泛滥,富商疯狂砸钱,挥金如土

亚洲第一赌场新东泰覆灭记:性交易泛滥,富商疯狂砸钱,挥金如土

谈史论天地
2026-01-21 06:10:03
历史性突破!U23国足首进亚洲杯决赛

历史性突破!U23国足首进亚洲杯决赛

财联社
2026-01-21 01:28:20
特朗普:不去G7峰会 因为马克龙干不长了

特朗普:不去G7峰会 因为马克龙干不长了

财联社
2026-01-21 11:40:17
第一个拒绝加入特朗普“和平委员会”的总统来了!中国也收到邀请

第一个拒绝加入特朗普“和平委员会”的总统来了!中国也收到邀请

现代小青青慕慕
2026-01-21 11:36:45
交易巴特勒!你好,小波特

交易巴特勒!你好,小波特

老垯科普
2026-01-21 14:56:32
“长安”这个名字不好吗,为什么要改为“西安”,谁改的?

“长安”这个名字不好吗,为什么要改为“西安”,谁改的?

长风文史
2026-01-20 20:02:02
利润136亿的绩优股,一年两次分红股息率3%,股价从70元跌到24元

利润136亿的绩优股,一年两次分红股息率3%,股价从70元跌到24元

投资观
2026-01-21 07:45:03
2026-01-21 16:44:49
娱乐狗仔堆
娱乐狗仔堆
口味越过三八线
1088文章数 836关注度
往期回顾 全部

科技要闻

给机器人做仿真训练 这家创企年营收破亿

头条要闻

中国是否加入"和平委员会" 外交部回应

头条要闻

中国是否加入"和平委员会" 外交部回应

体育要闻

只会防守反击?不好意思,我们要踢决赛了

娱乐要闻

李亚鹏2天获1291万网友力挺

财经要闻

消失的投资金 起底华文映像电影投资骗局

汽车要闻

新一代理想L9电池加码体型加大 重夺高端话语权

态度原创

教育
艺术
时尚
手机
亲子

教育要闻

初中竞赛题:这种指数方程怎么解?数形结合一招搞定

艺术要闻

一百多年前的中国,太雄伟震撼了!

告别93岁时尚传奇Valentino:他留下了全世界最美的“红”

手机要闻

消息称被取消的华硕ROG Phone 10系列手机原定今年2月发布

亲子要闻

新华读报|儿童近视越来越早?专家给家长的“近视防控三件套”

无障碍浏览 进入关怀版