文档章节

Node.js 成为 Web 应用开发最佳选择的十个原因

编辑部的故事
 编辑部的故事
发布于 2017/05/09 19:10
字数 2203
阅读 7963
收藏 123

一项颠覆性的技术进入技术市场总会带来一阵震惊,但随之而来往往是被放弃。然而,Node.js 当然不是这样的情况,它是一个开源的、跨平台的基于 Chrome 的 JavaScript 运行时。Node.js 由 Ryan Dahl 于 2009 年开发,该平台现在已成为实时 Web 应用开发的独特选择,通过提供高度交互的用户体验来提高 ROI。

使用 Node.js 的最大优点是开发人员可以在客户端和服务器端编写 JavaScript。值得一提的是,像 PayPal, Yahoo, eBay, Netflix, The Mail Online, 和 Walmart 这样的企业已经通过使用 Node.js 实现了各自的业务。继续阅读下面的内容,了解大多数企业选择 Node.js 开发 Web App 的十大主要原因。

点击此处了解顶级 JavaScript 框架/库

使用 Node.js 进行 Web App 开发人气暴涨背后的十大原因:

Image Source: CronJ

1. 加快开发进度

Node.js 使用由 Google 开发的 V8 引擎,它可以将 JavaScript 编译成原生机器码并快速执行。由于 Node.js 使用事件驱动的非阻塞 I/O 模型,因此对于内存使用和数据密集的实时 Web 应用十分高效和轻便,可在多个设备上工作。

使用 Node.js,可以非常快速地执行常见的 Web 应用任务,例如读取或写入数据库,读取或写入网络连接,以及读取或写入文件系统。Node.js 对于希望构建快速、强大的 Web 应用的开发人员来说是一个福音,它可以有效地处理并行连接并增加吞吐量。

在 LinkedIn 选择了 Node.js 之后,它的移动流量大幅上升,而且服务器的数量从 30 个减少到 3 个。PayPal 是另一个受益于 Node.js 的案例。在使用 Node.js 之后,PayPal 的响应时间缩短了 35%,与之前相比,每秒处理双倍的请求。可在包括 Microsoft Windows, Mac OS X, 和 Unix 在内的多个服务器上运行 Node.js 应用。

2. 非常适合实时应用程序开发

Image Source: agriyaservices.blogspot.com

当前几乎每个公司都会实时查找用户信息。一个简单的原因是,在生成客户信息时,可靠地访问客户信息为业务销售提供了重要的推动途径,通过为用户提供实际寻找的内容,而不是对其感兴趣的随机性。而且在过去的几年里,使用 Node.js 构建实时 Web APP 已经成为最佳方法。

使用 Node.js,所有与底层套接字和协议有关的担心都会烟消云散。使用 Node.js,可以像在 PHP 中创建一个简单的博客一样快速构建一个实时的 Web 应用。Node.js 非常适合多用户实时 Web 应用的场景,如游戏和聊天应用。多用户功能由事件循环通过 WebSocket 协议解决,该协议在 TCP 上工作。它还可以为 Web 开发防止 HTTP 的过度开销。

3. 数据流

mage Source: Quora

虽然 HTTP 请求和响应被认为是两个孤立的事件,但实际上它们是数据流。Node.js 的好处在于它可以在上传时进行文件处理。因此,在数据以流的形式出现的情况下,可以节省在整体流程中所浪费的大量时间。实时视频或音频也是这样的情况。

4. Node.js 是无处不在的

在浏览器和服务器都可以使用 JavaScript。如果一家公司需要为浏览器端更改构建逻辑以转移到服务器端,开发人员可通过使用 Node.js 代码迁移来轻松实现。尽管如此,编写运行在浏览器或服务器端的代码并没有太大的差异。

5. 允许让 Web 应用使用单个代码库

使用 Node.js,开发人员可以自动发送和同步服务器端和客户端之间的数据,因为它允许开发人员为服务器和客户端编写 JavaScript 代码。Meteor 是在 Node.js 之上创建的 Web 应用框架,为客户端和服务器端提供了相同代码库的支持。服务器上任何的数据更改都会在客户端立即显示。

“Node.js 不是一个支配 Web 开发世界的新平台。相反,它是一个满足特定需求的平台”,根据 Web 工程公司 Toptal 的说法,Node.js 真正的亮点在于构建快速的、可扩展的网络应用。

6. 为代理服务器提供服务

使用 Node.js 最大的优点之一是它作为一个代理服务器时,为不同响应时间的服务提供服务,或为从多个源点收集数据提供服务。

为了更好地理解请看下面这个例子:一个企业有一个服务器端应用,用于与第三方资源进行通信,从不同来源收集数据,或将图像和视频存储到第三方云服务中。现在,尽管企业可以使用专用服务器,但在不存在基础架构或当需要解决方案进行本地开发时,Node.js 是更好的选择。

7. 强大的 Node.js 包管理器(NPM)

Node.js 具有动态工具和模块的动态存储库,程序员可以使用它们共享应用开发。Node.js 可以通过框架,模板系统以及与访问者的实时通信管理等使用成千上万个模块用于各种任务,如文件上传管理,连接到 MySQL 数据库或 Redis。

Image Source: HostOnNet.com

对于需要重新使用外部 JavaScript 开发者创建的代码来解决某个特定的问题的程序员来说,Node.js 的包管理器或 NPM 是他们的救星。NPM 还允许 JavaScript 开发者下载针对以前在其应用中使用的特定代码所做的更新。即使不想重用组织外的 JavaScript 开发者创建的代码,也可以采用基于模块的方式来改进团队成员之间的协同效应。

使用 NPM 后,PayPal 显著提高了开发者的生产力。此外,互联网支付巨头不需要太多的开发者来构建一个应用,就像使用 Node.js 之前一样。

8. Node.js 非常适合数据库查询

对于数据库查询,Node.js 有一个优势,因为 JavaScript 可用于为 MongoDB,CouchDB 等新的 NoSQL 数据库编写数据库查询。对于开发者来说,这是一个很大的缓解,因为他们在执行组合 Node.js 和 NoSQL 数据库的任务时不需要记住语法差异。由于 JSON 存储的数据格式允许平滑运行,在数据转换或不匹配中没有任何障碍。因此 Node.js 对于实时 Web 应用来说确实是一个福音。

9. Node.js 托管已经达到一个新的台阶

由于 Node.js 在开发人员中十分受欢迎,因此它的托管已经取得了很大的成功。 PaaS(平台即服务)服务提供商(如 Heroku 和 Modulus)为单个命令的节点部署提供了支持。通过 Node.js 托管,可将页面加载时间减少高达 50%,并降低托管应用程序所需的服务器数量。

点击这里了解 “云计算服务模型”

10. 蓬勃发展的开源社区

Node.js 还有着非常有好的社区。因为拥有开源社区,Node.js 提供了许多出色的模块,可为 Web 应用增加更多优秀的功能。例如,Socket.io 可用于处理客户端和服务器之间的恒定通信,从而使服务器可向客户端发送实时更新。Express.js, Koa.js, Hapi.js, Sails.js, Meteor 和 Derby 是由 Node.js 社区开发的一些其他顶级框架,用于加速应用开发过程。

IoT 社区也欢迎将 Node.js 用于嵌入式设备和机器人,如 Cylon 和 Nodebots。此外,它已经成为实时 Web APP 开发世界的巨人。上面提到有关 Node.js 的所有优点是许多公司认为 Node.js 是运行重负载 Web 应用的很好的技术,并允许团队将其用于生产环境的原因。

如果以前曾经使用过 Node.js 进行 Web 应用开发,请告诉我们您的体验。您是否也同意 Node.js 真的是 Web 应用开发的一个福音?在评论中分享你的想法吧~

译自:EVONTech

原文链接:https://my.oschina.net/editorial-story/blog/896206
责任编辑:开源中国 – 局长
转载必须在正文中标注并保留原文链接和作者等信息

© 著作权归作者所有

编辑部的故事

编辑部的故事

粉丝 1472
博文 264
码字总数 512489
作品 0
深圳
运营/编辑
私信 提问
加载中

评论(55)

gitlab_sam
gitlab_sam
评论区相当有意思,吓得我都不敢说啥,本来是想来听听大神的教诲,结果看到一地鸡毛。言归正传,脱离使用场景来说最佳,是不是有些不太合适
秋风萧瑟小黄花
秋风萧瑟小黄花

引用来自“无著方知尘亦珍”的评论

引用来自“cyper”的评论

不管你选择/切换/学习什么后端语言java? golang? kotlin? php? swift?,但是做web/前端开发的永远都离不开javascript,前后端选相同的语言, 减少学习成本, 何乐而不为. 选node还能体验最新的ECMAScript标准.ES2107之类 可以说是面向未来编程.

有个笑话“xxx学会xxx语言”,可惜这不是笑话,所以学习一门语言永远算不上高成本。
大多数搞web开发的后端都会js,面相未来,那也得先等到未来再说,至少目前web前端流行技术没有一个统一的标准这是事实,注意:我没有说那些技术不牛。
可以试试typescript,我猜测microsoft就是这么做的
一种被遗忘的语言
各浏览器和各终端的兼容问题一直困扰着前端和后端人员,现在比以前要学的东西多太多了!!!
AutoPlus
AutoPlus

引用来自“无著方知尘亦珍”的评论

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

同时具备后端和前端技术的程序员多的是,js的路还远着呢,先解决那百家争鸣的局面,然后擦擦屁股扫扫npm里的垃圾,再跪求各个浏览器厂商。
如果是开发后端就更没有浏览器问题了

那js或者说nodejs能像其他后端语言一样,完全从浏览器端独立开来么?就算独立了,那么它的优势呢?
做过项目就知道了,看下文档就喷没意义

你怎么就知道我没做过项目?你不会就只会js吧,所以无法跟其它语言及生态做比较。
这句话说明你确实没做过这种项目,最起码你提到的生态完全就是无知状态,现在有其他语言敢跟 NPM 比生态?

我估计你连什么叫生态都不知道,我的评论里有很多说的是生态么?还“跟npm比生态”,真逗,比生态那也是说"跟node.js比生态",谁无聊到让别的语言跟一个包管理器比生态。逗!
你自己的这些屁话才说明你根本不知道什么叫生态。node.js 的生态在哪里,在 npm 里。java 的生态在哪里,在 maven gradle 里。离开 npm 讲生态,离开 maven 讲生态,就好比离开地球讲中国,你是从石头缝里蹦出来的吗?

艹,那你直接跟githup比吧,一统天下,无人可挡。

回复@无著方知尘亦珍 : githup 是什么玩意?真搞笑!npm 是 nodejs 官方开发组为 nodejs 编写的库管理平台,而且其服务器管理者也是 nodejs 官方,npm 就是 nodejs 生态
无著方知尘亦珍
无著方知尘亦珍

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

同时具备后端和前端技术的程序员多的是,js的路还远着呢,先解决那百家争鸣的局面,然后擦擦屁股扫扫npm里的垃圾,再跪求各个浏览器厂商。
如果是开发后端就更没有浏览器问题了

那js或者说nodejs能像其他后端语言一样,完全从浏览器端独立开来么?就算独立了,那么它的优势呢?
做过项目就知道了,看下文档就喷没意义

你怎么就知道我没做过项目?你不会就只会js吧,所以无法跟其它语言及生态做比较。
这句话说明你确实没做过这种项目,最起码你提到的生态完全就是无知状态,现在有其他语言敢跟 NPM 比生态?

我估计你连什么叫生态都不知道,我的评论里有很多说的是生态么?还“跟npm比生态”,真逗,比生态那也是说"跟node.js比生态",谁无聊到让别的语言跟一个包管理器比生态。逗!
你自己的这些屁话才说明你根本不知道什么叫生态。node.js 的生态在哪里,在 npm 里。java 的生态在哪里,在 maven gradle 里。离开 npm 讲生态,离开 maven 讲生态,就好比离开地球讲中国,你是从石头缝里蹦出来的吗?

艹,那你直接跟githup比吧,一统天下,无人可挡。
AutoPlus
AutoPlus

引用来自“无著方知尘亦珍”的评论

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

同时具备后端和前端技术的程序员多的是,js的路还远着呢,先解决那百家争鸣的局面,然后擦擦屁股扫扫npm里的垃圾,再跪求各个浏览器厂商。
如果是开发后端就更没有浏览器问题了

那js或者说nodejs能像其他后端语言一样,完全从浏览器端独立开来么?就算独立了,那么它的优势呢?
做过项目就知道了,看下文档就喷没意义

你怎么就知道我没做过项目?你不会就只会js吧,所以无法跟其它语言及生态做比较。
这句话说明你确实没做过这种项目,最起码你提到的生态完全就是无知状态,现在有其他语言敢跟 NPM 比生态?

我估计你连什么叫生态都不知道,我的评论里有很多说的是生态么?还“跟npm比生态”,真逗,比生态那也是说"跟node.js比生态",谁无聊到让别的语言跟一个包管理器比生态。逗!
你自己的这些屁话才说明你根本不知道什么叫生态。node.js 的生态在哪里,在 npm 里。java 的生态在哪里,在 maven gradle 里。离开 npm 讲生态,离开 maven 讲生态,就好比离开地球讲中国,你是从石头缝里蹦出来的吗?
AutoPlus
AutoPlus

引用来自“无著方知尘亦珍”的评论

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“cyper”的评论

不管你选择/切换/学习什么后端语言java? golang? kotlin? php? swift?,但是做web/前端开发的永远都离不开javascript,前后端选相同的语言, 减少学习成本, 何乐而不为. 选node还能体验最新的ECMAScript标准.ES2107之类 可以说是面向未来编程.

有个笑话“xxx学会xxx语言”,可惜这不是笑话,所以学习一门语言永远算不上高成本。
大多数搞web开发的后端都会js,面相未来,那也得先等到未来再说,至少目前web前端流行技术没有一个统一的标准这是事实,注意:我没有说那些技术不牛。
"大多数搞web开发的后端都会js",这句话是个虚话。也可以说成“大多数搞开发的程序员都会 C C++ JAVA”,谁上学时没写过点 C C++ JAVA。

人家正统职业必备的技能,你以为跟你一样学生党啊。这年头实际工作中不会多门语言的才是少数呢,还学校里学会的,真逗。
正统职业必备的技能,真是笑死人了,连 js 的书本都没看过,网页上翻吧翻吧拿 jQuery 写两行特效,就是职业技能了啊!大多数程序员拿 Python 写个运行脚本,C C++ 写写排序链表,Java 写写 benchmark,谁还不会点 C C++ Java。
无著方知尘亦珍
无著方知尘亦珍

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“angelboy”的评论

引用来自“无著方知尘亦珍”的评论

同时具备后端和前端技术的程序员多的是,js的路还远着呢,先解决那百家争鸣的局面,然后擦擦屁股扫扫npm里的垃圾,再跪求各个浏览器厂商。
如果是开发后端就更没有浏览器问题了

那js或者说nodejs能像其他后端语言一样,完全从浏览器端独立开来么?就算独立了,那么它的优势呢?
做过项目就知道了,看下文档就喷没意义

你怎么就知道我没做过项目?你不会就只会js吧,所以无法跟其它语言及生态做比较。
这句话说明你确实没做过这种项目,最起码你提到的生态完全就是无知状态,现在有其他语言敢跟 NPM 比生态?

我估计你连什么叫生态都不知道,我的评论里有很多说的是生态么?还“跟npm比生态”,真逗,比生态那也是说"跟node.js比生态",谁无聊到让别的语言跟一个包管理器比生态。逗!
无著方知尘亦珍
无著方知尘亦珍

引用来自“AutoPlus”的评论

引用来自“无著方知尘亦珍”的评论

引用来自“cyper”的评论

不管你选择/切换/学习什么后端语言java? golang? kotlin? php? swift?,但是做web/前端开发的永远都离不开javascript,前后端选相同的语言, 减少学习成本, 何乐而不为. 选node还能体验最新的ECMAScript标准.ES2107之类 可以说是面向未来编程.

有个笑话“xxx学会xxx语言”,可惜这不是笑话,所以学习一门语言永远算不上高成本。
大多数搞web开发的后端都会js,面相未来,那也得先等到未来再说,至少目前web前端流行技术没有一个统一的标准这是事实,注意:我没有说那些技术不牛。
"大多数搞web开发的后端都会js",这句话是个虚话。也可以说成“大多数搞开发的程序员都会 C C++ JAVA”,谁上学时没写过点 C C++ JAVA。

人家正统职业必备的技能,你以为跟你一样学生党啊。这年头实际工作中不会多门语言的才是少数呢,还学校里学会的,真逗。
无著方知尘亦珍
无著方知尘亦珍
学生党一边玩去,真是逗,自己打听打听,搞javaweb,php,asp.net的这些开发人员会的js居然就被你当成仅仅学过而已?
为什么说拥抱.NET CORE的时候到了

微软和社区已经做了大量艰苦的工作,使.Net Core成为市场上具有竞争力的框架,帮助开发人员快速开发具有最佳性能和可扩展性的强大应用程序。做的最棒的事情是.Net Framework开发人员不需要任...

dotNET跨平台
07/22
0
0
十个最适合 Web 和 APP 开发的 NodeJS 框架

在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一。全球各地的开发者张开双臂拥抱 NodeJS。 对于新手来说,Node.js 是...

noeticforce
2015/12/02
41.2K
22
[译] nodejs的未来是什么?

[译] nodejs的未来是什么 —— 寻找一份工作并不是一件很容易的事情。 作者:Marvin Sunrise Tracking 的 CEO 原文链接-What is the future of Node JS? Node JS 在non-blocking I/O 看来变得...

Rick_Lee
09/02
0
0
如何选择正确的Node框架:Express,Koa还是Hapi?

简介 Node.js是10年前首次推出的,目前它已经成为世界上最大的开源项目,在GitHub上有+59,000颗星,下载次数超过10亿。流行度快速增长的部分原因是Node.js允许开发人员在应用程序的客户端和服...

一二三OTT
04/24
0
0
Node.js成为下一个大事件的七大原因

现代的开发人员旨在于定期创造新的东西,可能每隔一两个月会交付推出一项新的技术。一些没有很好派生和管理地技术当然就会很快地消失。Node.js似乎与这些技术截然不同,自2009年推出以来,它...

Miss_Hello_World
2015/07/30
93
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部