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

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分钟!却没赶上飞机!愤而投诉…这责任怪谁?

上海一女子从家到机场仅10分钟!却没赶上飞机!愤而投诉…这责任怪谁?

新民晚报
2024-06-04 14:17:19
重磅!德约宣布因膝盖伤势退出法网 无缘卫冕冲4圈全满贯

重磅!德约宣布因膝盖伤势退出法网 无缘卫冕冲4圈全满贯

醉卧浮生
2024-06-04 23:20:17
黄海波曲栅栅补办婚宴,老师黄磊致辞,赵宝刚奚美娟等出席

黄海波曲栅栅补办婚宴,老师黄磊致辞,赵宝刚奚美娟等出席

娱慧
2024-06-04 15:52:17
胡赛武装袭击了美国核动力航母?一众官媒集体“高潮”……

胡赛武装袭击了美国核动力航母?一众官媒集体“高潮”……

1号时务局
2024-06-04 18:06:13
一位法国老人夜探中国某公园,惊叹竟然没有流浪汉,狂赞“绝对安全的国家”

一位法国老人夜探中国某公园,惊叹竟然没有流浪汉,狂赞“绝对安全的国家”

不掉线电波
2024-06-04 18:57:35
26页PPT曝光!女主控诉上海交通大学博士冷暴力PUA,并因他流产…

26页PPT曝光!女主控诉上海交通大学博士冷暴力PUA,并因他流产…

火山诗话
2024-06-04 21:22:14
又一办公室不雅行为!摄像头忘关视频被曝光,女子身份引热议

又一办公室不雅行为!摄像头忘关视频被曝光,女子身份引热议

娱乐帝皇丸
2024-06-05 02:23:17
朱婷离队原因揭晓!李盈莹正式表态,蔡斌作出意外决定

朱婷离队原因揭晓!李盈莹正式表态,蔡斌作出意外决定

十点体坛
2024-06-04 20:31:34
哈登3年1.25亿续约快船,伦纳德离队,快船重组三巨头!

哈登3年1.25亿续约快船,伦纳德离队,快船重组三巨头!

邮轮摄影师阿嗵
2024-06-04 20:46:29
新闻联播都快看不懂了,里面多了许多让人困惑的新词汇

新闻联播都快看不懂了,里面多了许多让人困惑的新词汇

娱乐帝皇丸
2024-06-04 21:39:30
风云突变!上海楼市,开始掀桌子了!

风云突变!上海楼市,开始掀桌子了!

米筐投资
2024-06-04 07:31:01
浙江驴友落水后续,当事人已找到,活动详情曝光,真怪不得女孩!

浙江驴友落水后续,当事人已找到,活动详情曝光,真怪不得女孩!

伊印
2024-06-04 18:54:41
第三轮第二批中央生态环境保护督察完成下沉工作任务

第三轮第二批中央生态环境保护督察完成下沉工作任务

界面新闻
2024-06-04 10:56:27
湖南:小伙捧鲜花表白女技师,做足疗一见钟情,网友:长得很哇塞

湖南:小伙捧鲜花表白女技师,做足疗一见钟情,网友:长得很哇塞

百晓史
2024-06-02 09:09:36
确认死亡!被激流冲走后续:两人关系曝光,救助人员成为众矢之的

确认死亡!被激流冲走后续:两人关系曝光,救助人员成为众矢之的

吃货的分享
2024-06-05 01:30:20
太难熬!网传深圳周大福发布停工待岗通知,每月仅发1888元生活费

太难熬!网传深圳周大福发布停工待岗通知,每月仅发1888元生活费

火山诗话
2024-06-04 22:03:11
最后5公里打疯了!俄军一天战斗冲锋130次:整队士兵死在火海

最后5公里打疯了!俄军一天战斗冲锋130次:整队士兵死在火海

星辰故事屋
2024-06-04 21:04:42
吴昕郑凯被曝已同居!两人地下恋爱5年,更多恋爱痕迹被扒!

吴昕郑凯被曝已同居!两人地下恋爱5年,更多恋爱痕迹被扒!

古希腊掌管月桂的神
2024-06-04 15:25:06
今年第30虎落马!任职地曾“倒查20年”

今年第30虎落马!任职地曾“倒查20年”

鲁中晨报
2024-06-04 17:19:04
6人出局!国足23人新名单曝光,1归化+1门将被淘汰,赢泰国=出线

6人出局!国足23人新名单曝光,1归化+1门将被淘汰,赢泰国=出线

侃球熊弟
2024-06-04 21:10:36
2024-06-05 07:22:44
娱乐狗仔堆
娱乐狗仔堆
口味越过三八线
1088文章数 836关注度
往期回顾 全部

科技要闻

斯坦福团队抄袭国产大模型后道歉 承诺撤下

头条要闻

5岁女童在机构练舞蹈摔倒致高位截瘫:只拿到20万赔偿

头条要闻

5岁女童在机构练舞蹈摔倒致高位截瘫:只拿到20万赔偿

体育要闻

从英国联赛到NBA,两个美国人相爱相杀

娱乐要闻

杨幂留言为热巴庆生,姐妹情深惹人羡

财经要闻

卷走53亿 浙江富豪全家跑路了

汽车要闻

2.0T+云辇-P+天神之眼 方程豹豹8还配软包内装

态度原创

房产
健康
本地
手机
游戏

房产要闻

79.17亿!海开拿下永丰南地块 据说产品90平起

晚餐不吃or吃七分饱,哪种更减肥?

本地新闻

我和我的家乡|踏浪营口,心动不止一夏!

手机要闻

三强争霸!一加13、OPPO Find X8、真我GT7 Pro,谁更值得期待?

天地劫:陆文生惊飞羽抽取价值分析!这版本的吸引力都在打牌了!

无障碍浏览 进入关怀版