node.js是什么
上面是来自于node.js 官网 (https://nodejs.org)的介绍。
翻译过来,意思是node.js 基于JavaScript, 需要运行在Chrome V8 的 JavaScript引擎上。与我们通常认为的前端JavaScript 不一样的是,node.js运行于服务端。对于前端工程师来讲,如果对JavaScript已经比较了解,node.js是通往全栈工程师的一个很好的选择。
与大多数服务端编程语言一样,node.js也具有跨平台属性,支持 Windows, Linux, Mac 系统。提供快速便捷的安装,对于了解JavaScript和服务端编程的程序员来说,其轻便快捷的特点,上手是非常快的。
node.js的产生
与很多语言一样,node.js同样也是大牛们的产物,诞生于2009年。那么,是什么导致大牛们决定把JavaScript用作在服务端进行开发的语言,毕竟当时已经有很多服务端的语言,比如Java, php等。
需要了解当时的情况。随着当时Web 2.0应用程序的流行,JavaScript也变得更加流行。多家浏览器厂商也为了争夺用户而不断进行性能,体验的提升,那么JavaScript引擎此时就变得尤为重要。Google Chrome V8在竞争中脱颖而出。这也是导致node.js崛起的一个关键因素。所谓时势造英雄,没有时势很难有英雄的出现。而没有相应的环境,也很难有新事物的出现。
这也是为什么JavaScript 1.0 于1996年推出以后,直到10多年后的2009年,才出现了node.js让JavaScript可以用于服务器端的开发。这也是很多老程序员无法想象的事情,2000年后的程序员早已习惯于使用Java来开发企业级应用程序了。文章的后段会介绍node.js开发web应用会有多么的便捷和快速。
node.js的发展历程
2009: node.js 诞生
2010: node.js 框架 Express 诞生
2011: npm 1.0 推出
2013: 第一个基于node.js的博客系统 Ghost 诞生 (Ghost类似于Wordpress, 但更为轻便)。同年,Koa 框架诞生
2016: Yarn 诞生
node.js优势
快速
V8引擎使用C++编写。在运行中,用来编译JavaScript,并且能够快速执行。谷歌过去每年都为该引擎投入资金用以性能方面的提升。
无阻塞输入/输出和异步请求处理
使Node.js能够处理请求而不延迟。在后端上下文中,同步处理假定代码按顺序执行,因此,每个请求都会阻塞一个线程,使其他请求等待线程完成。
异步处理允许在不阻塞(非阻塞I/O)线程的情况下处理请求。因此,在处理请求之后,它可以推出回调并继续为请求提供服务。这有助于Node.js充分利用单线程,从而缩短响应时间和并发处理。
事件驱动
node.js的模块中内置了事件相关的模块,可以通过事件的emit和listen对事件实现触发和监听。
由于Node.js的异步、非阻塞、单线程特性,它是在线游戏、聊天、视频会议或任何需要不断更新数据的解决方案的流行选择。
node.js 适用场景
适用于高并发,异步I/O的场景。比如:RESTFUL API、实时聊天、客户端逻辑强大的单页APP等。个人认为对于小型Web应用的快速开发,尤其是对象模型是动态变化,不容易实例化成固定数据库表时,结合mongoDB 是快速开发的利器。对比传统java开发,各有优势。
node.js 实际应用
在企业中的实际应用见下图。行业覆盖制造业,金融行业,电子商务,媒体,高科技等。业界知名的BMW, amazon, ebay, salesforce, apple等都在自己的应用中使用了 node.js.
后续将继续介绍 node.js 的 入门以及使用。
下一篇: node.js 02 - 安装与升级