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

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.

相关推荐
热点推荐
莫氏鸡煲加盟费10万、每月管理费2万?老板儿子回应:假的,已报警

莫氏鸡煲加盟费10万、每月管理费2万?老板儿子回应:假的,已报警

极目新闻
2026-04-30 21:29:47
日本“一天一顿饭”!求助无门,开始呼叫中国?

日本“一天一顿饭”!求助无门,开始呼叫中国?

混沌录
2026-04-29 19:36:05
日本影坛 “禁忌女王” 黑木瞳:她的大尺度,至今无人能超越

日本影坛 “禁忌女王” 黑木瞳:她的大尺度,至今无人能超越

橙星文娱
2026-03-27 12:14:04
越南少将的坦白:中国军队在谅山再停留五天,越军将无一幸免

越南少将的坦白:中国军队在谅山再停留五天,越军将无一幸免

正观历史
2026-04-29 14:04:21
记者:因右肩锁骨骨折,德阿拉斯卡埃塔可能无缘世界杯

记者:因右肩锁骨骨折,德阿拉斯卡埃塔可能无缘世界杯

懂球帝
2026-04-30 13:22:08
突然传来大喜讯!我国一次性拿下13个亿吨级大油田

突然传来大喜讯!我国一次性拿下13个亿吨级大油田

趣味萌宠的日常
2026-04-30 12:15:25
4月30日俄乌:近10个月以来的最佳位置

4月30日俄乌:近10个月以来的最佳位置

山河路口
2026-04-30 18:46:20
第一次对「铝箔纸」产生了敬意!以为烘焙专用,没想到是家居神器

第一次对「铝箔纸」产生了敬意!以为烘焙专用,没想到是家居神器

装修秀
2026-04-18 11:55:03
先发22胜9负打服休媒!36岁哈登仍骑士最佳 创3纪录剑指保障合约

先发22胜9负打服休媒!36岁哈登仍骑士最佳 创3纪录剑指保障合约

颜小白的篮球梦
2026-04-30 22:43:25
曾经走红,如今却“沦为笑柄”的4种数码产品,还是别再买了

曾经走红,如今却“沦为笑柄”的4种数码产品,还是别再买了

美家指南
2026-03-06 10:31:36
狂轰45分率活塞续命!坎宁安G5赛后吐真言:感觉自己配不上

狂轰45分率活塞续命!坎宁安G5赛后吐真言:感觉自己配不上

仰卧撑FTUer
2026-04-30 13:23:23
英国学者发现耶稣童年住所:神奇一幕再次出现,西方考古果然可疑

英国学者发现耶稣童年住所:神奇一幕再次出现,西方考古果然可疑

抽象派大师
2026-04-30 00:15:11
诺兰新片比《奥本海默》短,却更难拍

诺兰新片比《奥本海默》短,却更难拍

追星雷达站
2026-04-30 03:15:57
伊朗最高领袖穆杰塔巴:波斯湾和霍尔木兹海峡正在开启新的篇章

伊朗最高领袖穆杰塔巴:波斯湾和霍尔木兹海峡正在开启新的篇章

澎湃新闻
2026-04-30 19:32:20
美军重启A-10守卫霍尔木兹海峡:这一次,它是真的无可替代!

美军重启A-10守卫霍尔木兹海峡:这一次,它是真的无可替代!

二大爷观世界
2026-04-30 12:09:25
劳务派遣在央国企杀疯了!

劳务派遣在央国企杀疯了!

灯锦年
2026-04-21 17:56:52
东莞口腔医院拒绝改名!

东莞口腔医院拒绝改名!

听心堂
2026-04-29 10:35:17
“钞能力”新高度!史上最强玩家,直接掏钱买下亏钱停运网游!

“钞能力”新高度!史上最强玩家,直接掏钱买下亏钱停运网游!

17173游戏网
2026-04-30 13:32:03
利空突袭!深夜,暴跌!科技巨头,突遭抛售

利空突袭!深夜,暴跌!科技巨头,突遭抛售

数据宝
2026-05-01 07:58:29
逆转失败,王欣瑜决胜盘抢七脆败1-2不敌夏拉埃娃,止步拉比斯瓦尔次轮

逆转失败,王欣瑜决胜盘抢七脆败1-2不敌夏拉埃娃,止步拉比斯瓦尔次轮

懂球帝
2026-04-30 22:54:07
2026-05-01 08:24:49
娱乐狗仔堆
娱乐狗仔堆
口味越过三八线
1088文章数 836关注度
往期回顾 全部

科技要闻

9000亿美元估值,Anthropic即将反超OpenAI

头条要闻

高校招聘被质疑"萝卜岗":36人进体检近半疑为本校老师

头条要闻

高校招聘被质疑"萝卜岗":36人进体检近半疑为本校老师

体育要闻

季后赛场均5.4分,他凭啥在骑士打首发?

娱乐要闻

孙杨博士学历有问题?官方含糊其辞

财经要闻

易会满被“双开”!

汽车要闻

专访捷途汪如生:捷途双线作战 全球化全面落地

态度原创

家居
数码
时尚
游戏
军事航空

家居要闻

灵动实用 生活艺术场

数码要闻

三星Galaxy Book笔记本据称将弃用Windows 11 转而预装Android 17

春天穿衣要杜绝老气感!衣服选对、搭配到位,减龄舒适又得体

玩家竟是帮凶?魔兽狩猎的背后,藏着银月城最疯狂的“救世主”

军事要闻

伊朗:持续推进海上封锁的行为不可容忍

无障碍浏览 进入关怀版