初学Node.js

每接触一门新的知识,心里都有些许忐忑,总担忧学很差,因此都认真听老师讲,可是即便那样当心翼翼,在一阶段知识学完后,总以为学的不够活,并且用着用着都不知道这究竟是用来干吗的了。究其根源,仍是知识没有学活,没有认真思考和运用。javascript

虽然在用着说着Node.js,名字是挺洋气的,可是究竟是什么呢?查了查资料,了解到,其实它是一个服务器程序,基于javascript的解释器。javacript最初是运行在浏览器上,它可使用在不一样的上下文中,而Node.js其实就是js的另一种上下文,它能够在后台运行js代码,就是服务器端的js。Node自己运行V8 javascript,V8 javascript引擎是谷歌用于其Chrome浏览器的底层JavaScript引擎。在客户端,JavaScript引擎负责解释并执行代码,谷歌建立了一个用C++编写的超快解释器,该解释器拥有另外一个独特特征;能够下载该引擎并将其嵌入任何 应用程序。V8 JavaScript 引擎并不只限于在一个浏览器中运行。所以,Node 实际上会使用 Google 编写的 V8 JavaScript 引擎,并将其重建为可在服务器上使用。html

同时,基础 Node 产品确定不 像 Apache 或 Tomcat。(apache:侧重于http server ;tomcat:侧重于servlet引擎,若是以standalone方式运行,功能上与apache等效,支持JSP,但对静态网页不太理想;apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,能够认为是apache的扩展,可是能够独立于apache运行。换句话说,apache是一辆卡车,上面能够装一些东西如html等。可是不能装水,要装水必需要有容器(桶),而这个桶也能够不放在卡车上。)本质上,那些服务器 “安装就绪型” 服 务器产品,支持当即部署应用程序。经过这些产品,您能够在一分钟内启动并运行一个服务器。Node 确定不是这种产品。Apache 能经过添加一个 PHP 模块来容许开发人员建立动态 Web 页,添加一个 SSL 模块来实现安全链接,与此相似,Node 也有模块概念,容许向 Node 内核添加模块。实际上,可供选择的用于 Node 的模块有数百个之多,社区在建立、发布和更新模块方面很是活跃,一天甚至能够处理数十个模块。java

主要好处:在Java和PHP这类语言中,每一个链接都会生成一个新线程(一个进程可包含多个线程),每一个新线程可能须要 2 MB 的配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发链接数量是 4,000 个用户。随着您的客户群的增加,若是但愿您的 Web 应用程序支持更多用户,那么,您必须添加更多服务器。Node 解决这个问题的方法是:更改链接到服务器的方式。每一个链接发射一个在 Node 引擎的进程中运行的事件,而不是为每一个链接生成一个新的 OS 线程(并为其分配一些配套内存)。Node 声称它毫不会死锁,由于它根本不容许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发链接。web

基于事件驱动的回调函数,这样作能够实现Node并行处理事件的功能,回调函数是当有事件发生时执行,异步执行,因此并行执行方便。apache

函数可做为参数进行传递。浏览器

相关文章
相关标签/搜索