一项颠覆性的技术进入技术市场总会带来一阵震惊,但随之而来每每是被放弃。然而,Node.js 固然不是这样的状况,它是一个开源的、跨平台的基于 Chrome 的 JavaScript 运行时。Node.js 由 Ryan Dahl 于 2009 年开发,该平台如今已成为实时 Web 应用开发的独特选择,经过提供高度交互的用户体验来提升 ROI。javascript
使用 Node.js 的最大优势是开发人员能够在客户端和服务器端编写 JavaScript。值得一提的是,像 PayPal, Yahoo, eBay, Netflix, The Mail Online, 和 Walmart 这样的企业已经经过使用 Node.js 实现了各自的业务。继续阅读下面的内容,了解大多数企业选择 Node.js 开发 Web App 的十大主要缘由。html
使用 Node.js 进行 Web App 开发人气暴涨背后的十大缘由:java
Node.js 使用由 Google 开发的 V8 引擎,它能够将 JavaScript 编译成原生机器码并快速执行。因为 Node.js 使用事件驱动的非阻塞 I/O 模型,所以对于内存使用和数据密集的实时 Web 应用十分高效和轻便,可在多个设备上工做。node
使用 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 应用。web
当前几乎每一个公司都会实时查找用户信息。一个简单的缘由是,在生成客户信息时,可靠地访问客户信息为业务销售提供了重要的推进途径,经过为用户提供实际寻找的内容,而不是对其感兴趣的随机性。并且在过去的几年里,使用 Node.js 构建实时 Web APP 已经成为最佳方法。数据库
使用 Node.js,全部与底层套接字和协议有关的担忧都会烟消云散。使用 Node.js,能够像在 PHP 中建立一个简单的博客同样快速构建一个实时的 Web 应用。Node.js 很是适合多用户实时 Web 应用的场景,如游戏和聊天应用。多用户功能由事件循环经过 WebSocket 协议解决,该协议在 TCP 上工做。它还能够为 Web 开发防止 HTTP 的过分开销。api
虽然 HTTP 请求和响应被认为是两个孤立的事件,但实际上它们是数据流。Node.js 的好处在于它能够在上传时进行文件处理。所以,在数据以流的形式出现的状况下,能够节省在总体流程中所浪费的大量时间。实时视频或音频也是这样的状况。浏览器
在浏览器和服务器均可以使用 JavaScript。若是一家公司须要为浏览器端更改构建逻辑以转移到服务器端,开发人员可经过使用 Node.js 代码迁移来轻松实现。尽管如此,编写运行在浏览器或服务器端的代码并无太大的差别。
使用 Node.js,开发人员能够自动发送和同步服务器端和客户端之间的数据,由于它容许开发人员为服务器和客户端编写 JavaScript 代码。Meteor 是在 Node.js 之上建立的 Web 应用框架,为客户端和服务器端提供了相同代码库的支持。服务器上任何的数据更改都会在客户端当即显示。
“Node.js 不是一个支配 Web 开发世界的新平台。相反,它是一个知足特定需求的平台”,根据 Web 工程公司 Toptal 的说法,Node.js 真正的亮点在于构建快速的、可扩展的网络应用。
使用 Node.js 最大的优势之一是它做为一个代理服务器时,为不一样响应时间的服务提供服务,或为从多个源点收集数据提供服务。
为了更好地理解请看下面这个例子:一个企业有一个服务器端应用,用于与第三方资源进行通讯,从不一样来源收集数据,或将图像和视频存储到第三方云服务中。如今,尽管企业可使用专用服务器,但在不存在基础架构或当须要解决方案进行本地开发时,Node.js 是更好的选择。
Node.js 具备动态工具和模块的动态存储库,程序员可使用它们共享应用开发。Node.js 能够经过框架,模板系统以及与访问者的实时通讯管理等使用成千上万个模块用于各类任务,如文件上传管理,链接到 MySQL 数据库或 Redis。
对于须要从新使用外部 JavaScript 开发者建立的代码来解决某个特定的问题的程序员来讲,Node.js 的包管理器或 NPM 是他们的救星。NPM 还容许 JavaScript 开发者下载针对之前在其应用中使用的特定代码所作的更新。即便不想重用组织外的 JavaScript 开发者建立的代码,也能够采用基于模块的方式来改进团队成员之间的协同效应。
使用 NPM 后,PayPal 显著提升了开发者的生产力。此外,互联网支付巨头不须要太多的开发者来构建一个应用,就像使用 Node.js 以前同样。
对于数据库查询,Node.js 有一个优点,由于 JavaScript 可用于为 MongoDB,CouchDB 等新的 NoSQL 数据库编写数据库查询。对于开发者来讲,这是一个很大的缓解,由于他们在执行组合 Node.js 和 NoSQL 数据库的任务时不须要记住语法差别。因为 JSON 存储的数据格式容许平滑运行,在数据转换或不匹配中没有任何障碍。所以 Node.js 对于实时 Web 应用来讲确实是一个福音。
因为 Node.js 在开发人员中十分受欢迎,所以它的托管已经取得了很大的成功。 PaaS(平台即服务)服务提供商(如 Heroku 和 Modulus)为单个命令的节点部署提供了支持。经过 Node.js 托管,可将页面加载时间减小高达 50%,并下降托管应用程序所需的服务器数量。
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
这里推荐一下个人前端学习交流群:784783012 ,里面都是学习前端的,若是你想制做酷炫的网页,想学习知识。本身整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS到移动端HTML5到各类框架都有整理,送给每一位前端小伙伴,有想学习web前端的,或是转行,或是大学生,还有工做中想提高本身能力的,正在学习的小伙伴欢迎加入学习。
点击:加入