- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Node.js入门和企业级项目开发
第1天;Node.js简介;创始人和node的诞生;;你去I/O,寻找学号为10001的学生数据;好忙啊!好忙啊!;在他快绝望的时候,V8引擎来了。V8满足他关于高性能Web服务器的想象:
● 没有历史包袱,没有同步I/O。不会出现一个同步I/O导致事件循环性能急剧降低的情况。
● V8性能足够好,远远比Python、Ruby等其他脚本语言的引擎快。
● JavaScript语言的闭包特性非常方便,比C中的回调函数好用。
于是在2009年的2月,按新的想法他提交了项目的第一行代码,这个项目的名字最终被定名为“node”。
2009年5月,Ryan Dahl正式向外界宣布他做的这个项目。2009年底,Ryan Dahl在柏林举行的JSConf EU会议上发表关于Node.js的演讲,之后Node.js逐渐流行于世。
这就是Node.js项目的由来,是一个专注于实现高性能Web服务器优化的专家,几经探索,几经挫折后,遇到V8而诞生的项目。;官网:/en/
Node.js使JavaScript的触角伸到了服务器开发中,在node的世界中,我们关心的不再是用JS操作网页上的DOM、制作交互动画、表单验证……而是服务器端的事情:HTTP请求的处理、GET请求和POST请求、数据库增删改查、cookie和session等等。
Node.js的特点:单线程、非阻塞异步I/O、事件驱动。;自2009年诞生以来,Node.js的版本号,一直就是0.×.×。Node.js向下兼容做的非常好,所有的高版本,会deprecate一些老版本的API,但不会完全不支持。
2014年12月,多位重量级Node.js开发者不满Joyent对Node.js的管理,自立门户创建了io.js。io.js的发展速度非常快,先是于2015年1月份发布了1.0版本,并且很快就达到了2.0版本,社区非常活跃。但io.js社区很快又宣布,这两个项目将合并到Node基金会下,并暂时由“Node.js和io.js核心技术团队联合监督”运营。
在Node.js和io.js首次融合的4.0.0版本中,开发者们可以看到其对ES6特性的扩展支持,并且大多数都是默认启用的,比如:classes、typed arrays、generators、Promises、Symbols、collections、arrow functions、block scoping)、template strings等等。;Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触角伸到了服务器端。
但Node似乎有点不同:
● Node.js不是一种独立的语言,与PHP、JSP、Python、Perl、Ruby的“既是语言,也是平台”不同,Node.js的使用JavaScript进行编程,运行在JavaScript引擎上(V8)。
● 与PHP、JSP等相比,Node.js跳过了Apache、Nginx、IIS等HTTP服务器,它自己不用建设在任何服务器软件之上。Node.js的许多设计理念与经典架构(LAMP)有着很大的不同,可以提供强大的伸缩能力。
Node.js自身哲学,是花最小的硬件成本,追求更高的并发,更高的处理性能。;Node.js架构;Node.js执行时间;单线程
非阻塞I/O
事件驱动
这三个特点,必须深入理解,可以说是面试必考。当你理解透彻之后,你会发现,这三个特点,实际上说的是一件事儿。;在Java、PHP或者.net等服务器端语言中,会为每一个客户端连接创建一个新的进程。而每个进程需要耗费大约2MB内存。也就是说,理论上一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让Web应用程序支持更多的用户,就需要增加服务器的数量,而Web应用程序的硬件成本当然就上升了。
Node.js不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序宏观上也是并行的。使用Node.js,一个8GB内存的服务器,可以同时处理超过4万用户的连接。
另外,单线程的带来的好处,还有操作系统完全不再有线程创建、销毁的时间开销。;Node.js特点之一:单线程;Node.js特点之二:非阻塞I/O;Node.js特点之二:非阻塞I/O;Node.js特点之三:事件驱动;Node.js特点之三:事件驱动;Node.js特点之三:事件驱动;适合Node的业务;Node生态非常好;Node无法挑战PHP、JSP等老牌后台语言
文档评论(0)