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

来了解下Node.js

0
分享至

一、Node.js能带给我们什么?

如果你有一定的前端基础,比如HTML、CSS、JavaScript、jQuery;那么,Node.js能让你以最低的成本快速过渡成为一个全栈工程师,从而触及后端和移动端的开发。当然,Node.js也不是万能的、也不是说学了它就可以完全取代后端的其他开发语言,它有自己的使命和擅长的应用领域。

像现在非常火热的Vue.js,Rect...,很多数据层动态交互优先选用了Node.js;So,这为你为什么要学习它又增加了一大理由。

Node.js和传统的后端语言(比如PHP、JSP等)相比,各有优缺点,各自擅长领域和侧重点不同,因此,各有千秋、各有需求市场。Node.js让我们进行后端开发多了一种便捷的手段。

二、Node.js在开发中擅长做什么和不擅长做什么?

2.1 Node.js擅长做的

第一大类:后台管理系统、实时交互系统、联网软件、高并发量的web应用程序;
第二大类:基于web、canvas等多人联网游戏;
第三大类:基于web的多人实时聊天客户端;
第四大类:单页面浏览器应用程序;
第五大类:操作数据库、为前端和移动端提供基于json的API;
第六大类,....

就拿实时聊天客户端来窥探下Node.js:

  • 统一协议端口:从 IRC 开始,有许多开源或者不开源的协议都运行在非标准端口上, 使用Node.js 则统一在标准的80端口运行 WebSockets。
  • 无需太复杂的计算:轻量级、高流量并且能良好的应对跨平台设备上运行密集型数据。
  • 对象数据库接口:Node.js十分适合通过对象数据库(object DB)来查询数据(如 MongoDB)。以 JSON 格式存储的数据允许 Node.js 直接处理,不需要纠结数据转换和匹配的问题。
  • 队列输入: 聊天应用要处理高量并发的数据,而Node.js的队列输出正解决了这个问题:在数据真正的写入之前就承认客户端的数据是真实的。(开发中通常的做法是,种耗时的操作通过回调函数来异步处理,主线程继续往下执行)
  • 数据流接收数据:我们可以在线处理正在上传中的文件,因为数据是通过流的形式进行接收。那么,实时音频和实时视频在一个网页上就能进行,无需再通过一个应用程序。

2.2 Node.js不擅长做的

第一大类:使用关系型数据库的服务端 WEB 应用;

因为,Express.js目前还不足以支撑所有的开发需求。

第二大类:有繁重的服务端计算和处理的应用。

凡是涉及CPU密集型操作都会削弱掉 Node通过事件驱动, 异步 I/O 模型等等带来的在吞吐量上的优势,因为当线程被非异步的高计算量占用时任何传入的请求将被阻塞。

三、什么是Node.js?

Node.js 是谷歌 V8 引擎、libuv平台抽象层以及主体使用 Javscript 编写的核心库三者集合的一个包装外壳,大量使用了使用事件驱动来实现异步开发。此外,在实时的Web应用上采用了基于 WebSocket 的推送技术,客户端和服务器端都可以发起通信,能够自由地交换数据。非常优雅、实用地打通了前后端。

V8是谷歌开发的,目前公认最快的 Javascript 解析引擎,并且具备服务器端解析能力。libuv 是一个开源的、为 Node 定制而生的跨平台的异步 IO 库。

Node.js 的工作原理?

Node.js 最大的用武之地在于建设高性能、高扩展性的互联网应用---因为它能够处理庞大的并且高吞吐量的并发连接。主要是因为node.js的以下几大特性:

event-driven 事件驱动

non-blocking 非阻塞的异步I/O调用

lightweight 省空间、省设备,轻量意味着更好的移植性

Node.js是跨平台的项目,可以运行在Linux、Unix、Windows

efficient 高效(node.js是基于单线程)

在PHP或者JSP中,是每个新增一个连接(请求)便生成一个新的线程,这个新的线程会占用系统内存,最终会占掉所有的可用内存。而 Node.js 仅仅只运行在一个单线程中,使用非阻塞的异步 I/O 调用,所有连接都由该线程处理,在 libuv 的加分下,可以允许其支持数万并发连接(全部挂在该线程的事件循环中),

注意:Node.js也有潜在的缺陷,比如:如果所有客户端的请求共享单一线程时也会有问题, 大量的计算可能会使得 Node 的单线程暂时失去反应, 并导致所有的其他客户端的请求一直阻塞, 直到计算结束才恢复正常;

因此,开发时千万不要让一个 Exception 阻塞核心的事件循环,因为这将导致 Node.js 的应用程序崩溃。比如在 PHP 中某个页面挂掉是不会影响网站运行的,但是 Nodejs 是一个线程一个线程来处理所有的链接,因此一旦异常阻塞了都可能会影响到其他所有的链接。

当然,Node.js中有很多工具和策略来帮助我们解决上述的问题,比如:异常回调传递, Forever 进行进程监视等

四、结论

如果在你的项目需求中不包含CPU密集型操作,也不需要访问任何阻塞的资源,那么你就可以利用的 Node.js 的优点,尽情、快速、可扩展地去开发任何网络应用。

因为,Node.js 从来就不是用于解决大规模计算问题而创建的。它的出现是为了解决大规模I/O 的问题,并且在这一点上做得非常好。

在接下来的Node.js 开发中,你会发现绝大多数问题是由误用阻塞操作而造成的。因此,要十分小心避免这个问题。


作者:5加H
链接:https://juejin.cn/post/6977231962821885966
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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.

相关推荐
热点推荐
金色梅花5角估价15000元,这个年份谁能找到?速查

金色梅花5角估价15000元,这个年份谁能找到?速查

小陈收藏社
2026-02-13 14:23:02
高盛定调:黄金不再单边涨,将是超级过山车

高盛定调:黄金不再单边涨,将是超级过山车

流苏晚晴
2026-02-23 12:22:43
美媒感慨:若不是中国还在反抗特朗普,几乎全世界都向他投降了

美媒感慨:若不是中国还在反抗特朗普,几乎全世界都向他投降了

悦心知足
2026-02-21 23:03:46
俄紧急出动伊尔-76,撤离驻伊朗外交官家属,中东局势再拉警报

俄紧急出动伊尔-76,撤离驻伊朗外交官家属,中东局势再拉警报

老马拉车莫少装
2026-02-23 09:21:25
怒斥国外记者荒谬!谷爱凌再次回击:你说说,究竟是夺金还是丢银

怒斥国外记者荒谬!谷爱凌再次回击:你说说,究竟是夺金还是丢银

风过乡
2026-02-23 13:14:06
男子网购了一台80寸的“小米电视”,安装宽带的师傅提醒他买的电视是假的!

男子网购了一台80寸的“小米电视”,安装宽带的师傅提醒他买的电视是假的!

张晓磊
2025-09-29 11:32:28
孙逊起身握拳!陈垣宇3-2复仇世排15 欧洲冠军低头沮丧黯然离场

孙逊起身握拳!陈垣宇3-2复仇世排15 欧洲冠军低头沮丧黯然离场

颜小白的篮球梦
2026-02-23 19:27:23
弟弟驱车1200公里看望远嫁姐姐,看到她在婆家“真实生活”

弟弟驱车1200公里看望远嫁姐姐,看到她在婆家“真实生活”

三农老历
2026-02-24 04:03:01
江西女子用公驴器官泡酒,三个月后给丈夫喝,不料发生意外

江西女子用公驴器官泡酒,三个月后给丈夫喝,不料发生意外

古怪奇谈录
2025-06-28 13:49:02
浙江人为什么这么有钱?毫不夸张地说,这真是个令人敬佩的地方!

浙江人为什么这么有钱?毫不夸张地说,这真是个令人敬佩的地方!

离离言几许
2026-02-23 12:04:00
离婚 4 年女子春节赖前夫家不走,执意过年,网友直言还是原配好

离婚 4 年女子春节赖前夫家不走,执意过年,网友直言还是原配好

一盅情怀
2026-02-21 19:01:20
两国可能合并,一旦成功将成超级大国,可能终结美国世界霸主地位

两国可能合并,一旦成功将成超级大国,可能终结美国世界霸主地位

国际阿尝
2026-01-18 01:15:03
五台山景区大火持续达7小时:官方回应伤亡情况,一画面信息量大

五台山景区大火持续达7小时:官方回应伤亡情况,一画面信息量大

博士观察
2026-02-22 16:44:15
男子将孩子抛河里后续:知情人透露全救起来了,丈夫社会性死亡!

男子将孩子抛河里后续:知情人透露全救起来了,丈夫社会性死亡!

奇思妙想生活家
2026-02-23 22:10:52
俄乌冲突升级:1705架无人机被击落,单点突袭难敌系统化打击

俄乌冲突升级:1705架无人机被击落,单点突袭难敌系统化打击

起喜电影
2026-02-23 15:46:36
国产率100%!又一“大国重器”被中国成功攻克,美西媒体骂声一片

国产率100%!又一“大国重器”被中国成功攻克,美西媒体骂声一片

白梦日记
2026-02-21 17:52:20
黄晓明紧急发文警告前妻baby!秀恩爱请注意形象,别影响我的家庭

黄晓明紧急发文警告前妻baby!秀恩爱请注意形象,别影响我的家庭

八卦王者
2026-02-22 10:56:41
高志凯:拜登是美国最卑鄙、最无耻的总统!在位四年煽动多国战争

高志凯:拜登是美国最卑鄙、最无耻的总统!在位四年煽动多国战争

扶苏聊历史
2025-12-26 09:53:52
上海街头,车辆突然失控撞向人行道!一男子在一旁猛喝热水,民警:不对劲……

上海街头,车辆突然失控撞向人行道!一男子在一旁猛喝热水,民警:不对劲……

上观新闻
2026-02-23 09:49:18
女游客报团旅游后怀孕,结果把旅行社给投诉了!

女游客报团旅游后怀孕,结果把旅行社给投诉了!

总在茶余后
2026-02-06 21:17:10
2026-02-24 05:48:49
Nodejs开发
Nodejs开发
分享只有程序员懂的干货
648文章数 823关注度
往期回顾 全部

科技要闻

智谱、MiniMax合计蒸发近千亿市值,为何?

头条要闻

墨西哥最大毒枭被击毙:喜欢杀人灭门 几乎没人看见过他

头条要闻

墨西哥最大毒枭被击毙:喜欢杀人灭门 几乎没人看见过他

体育要闻

哈登版骑士首败:雷霆的冠军课

娱乐要闻

那艺娜账号被禁止关注,视频已清空!

财经要闻

美国海关将停止征收被裁定违法的关税

汽车要闻

续航1810km!smart精灵#6 EHD超级电混2026年上市

态度原创

数码
家居
旅游
房产
健康

数码要闻

英特尔要回归统一核心设计,预计未来十年推出!

家居要闻

本真栖居 爱暖伴流年

旅游要闻

年轻人挤破头!为啥都往北京环球跑?看完懂了

房产要闻

窗前即地标!独占三亚湾C位 自贸港总裁行宫亮相

转头就晕的耳石症,能开车上班吗?

无障碍浏览 进入关怀版