龙空技术网

走向全栈工程师之路系列——NodeJS概述

易课堂 32

前言:

现在你们对“nodejs路径合并发生冲突应该怎么处理”大致比较看重,朋友们都需要知道一些“nodejs路径合并发生冲突应该怎么处理”的相关文章。那么小编也在网络上收集了一些对于“nodejs路径合并发生冲突应该怎么处理””的相关知识,希望你们能喜欢,同学们一起来学习一下吧!

要实现全栈开发,前后端都必须要熟悉。作为前端开发人员,后端开发对我们来说是陌生的。如果再去专门学习一门后台语言,比如JAVA或PHP。那样的话,一是学习成本增加了;二是学习的周期不比学习前端短。而NodeJS的出现,极大得降低了前端接触后端开发的门槛。

什么是NodeJS

首先,它所采用的语言是咱们非常熟悉的Javascript。这样在开发语言上不会有障碍,降低了学习成本。

其次,它使用了Chrome的V8引擎来执行JS,效率非常高。

第三,它构建了一个JavaScript运行环境,任何个人或团体都可以为它编写插件来丰富它的功能。

第四,它使用了一个基于事件驱动、非阻塞式的IO模型,使其轻量又高效。它的设计思想是以事件驱动为核心,其中绝大多数API都是基于事件的异步风格。

第五、NodeJS中的npm包管理器,是全球最大的开源库生态系统。你可以自己开发或通过npm下载各种模块来构建应用。

因此,NodeJS其实并不是一个服务器,而是通过各种模块来构建成服务器应用。

它是一个基于Chrome V8引擎的Javascript运行环境。最后,一句话总结下NodeJS,它是一个基于V8引擎的Javascript运行环境,采用事件驱动的异步模型来构建应用,并拥有非常庞大的生态环境为它提供支持。

NodeJS的发展史

NodeJS创立于2009年,至今已经非常成熟和稳定,但是它的整个发展历程应该说充满了曲折。现在来回顾下它的整个历程,基本上可以分为四个阶段:

一、混沌期

时间来到2009年5月。Ryan Dahl正式向外界宣布他做的这个项目,并于同年底在柏林举行的JSConf会议上发表关于NodeJS的演讲,之后NodeJS便逐渐流行起来。当然NodeJS的出现也不是Ryan凭空想象出来的,而是归功于他多年对web服务器的研究,在加上2008年V8引擎随着chrome浏览器的出世,这也为Ryan带来了启发,并基于V8引擎开发出来了一个基于事件的高性能服务器。最开始,NodeJS贡献在了github上,此后基于它的大量模块不断被开发出来,认识它的人也越来越多。不过这时的NodeJS还是和其他个人开源软件一样,没有强大的团队支撑,未来的发展方向也不明确。这种情况一直持续到一家叫做joyent公司的出现,他们在关注到这个项目以后,意识到了它身上的价值,所以决定赞助该项目。Ryan Dahl也于2010年正式加入该公司,并全职负责NodeJS项目的开发。这也标志着NodeJS从个人项目转变为公司下的项目,进入到了第二个阶段。

二、发展期

这个阶段从2010年到2014年底,经历了四年的时间,期间也有不少IT企业关注过该项目,甚至连微软也为其做出了不小的贡献,比如将NodeJS移植到windows平台下。joyent公司贡献就更大了,比如没有过多的干涉NodeJS社区的发展。并且还为其投入了很多资源。它的几任项目负责人Ryan Dahl、Isaac Z. Schlueter、Timothy J Fontaine都是joyent公司的全职员工。这段时间的前半部分NodeJS发展是比较迅速的,基本保持了较高的更新频率,大约每个月都会发布一个小版本。但是当Isaac卸任以后,更新频率下降到了三个月才发布一个小版本,而且NodeJS内核的发展更为缓慢,技术方向也不明确,迟迟不加入新的特性,比如对ES6的支持。这也引起了很多社区贡献者的不满,加上与joyent的一些管理理念有很大分歧,于是他们中的一些人在2014年8月发起了一个叫做Node Forward的组织,该组织致力于发起一个由社区来提升NodeJS以及整个生态系统的项目。后来由于涉及Node商标的问题,该组织干脆决定fock了NodeJS,并改名为io.js,至此彻底宣告NodeJS社区的分裂。这也标志着NodeJS来到了第三个阶段。

三、分裂期

io.js采用了完全开放式的管理模式,并成立了技术委员会。该委员会由那些有很多代码贡献的人员组成,他们来决定技术方向、项目管理和流程、共享的原则、管理附加的合作者等等,如果产生分歧的时候,由投票决定,少数服从多数。经过这一系列的改变后,io.js的发展可谓相当迅速。从io.js fock了NodeJS以后,于2015年的1月14号发布了1.0.0版本,并以周为单位的频率更新。新功能的加入更为激进,对ES6始终保持拥抱态度,不过在架构层面基本保持了NodeJS原有的样子。当V8引擎有更新的时候,也会及时跟进。此时NodeJS这边虽然发展依然很缓慢,但是joyent并没有闲着,也在做着自己的努力。比如成立了临时的NodeJS委员会,并邀请了一些NodeJS的重度用户参与,开了几次会探讨和制定新的管理模式。所以这个时期的情况是,io.js这边如火如荼的发布新版本,NodeJS这边则在不断的开会讨论。最终讨论后的结果是成立NodeJS基金会。时间来到2015年1月,基金会正式成立,同时决定和io.js和解。2月份开始讨论和解事宜,到5月份做出决定,此时的io.js已经发布了它的2.0版本。不过最终,io.js还是决定和NodeJS项目一起加入NodeJS基金会,因为该基金会和io.js的模式很相似,但更为健全。io.js的回归也标志着分裂期的结束,一个新阶段的到来。

四、飞速发展期

后面的时间就是io.js和NodeJS的合并,当然由于io.js发展远远超过当时的NodeJS,所以基本上就是以io.js的最新版本为基础,NodeJS则直接跨度到2.0版。当合并完成以后,NodeJS的发展可谓更加迅速,短短两年时间,到截稿时最新版本为11.1.0。

这张表记录着NodeJS版本的一些维护状态。Release表示版本号,0.10是最早的版本,现在正在开发的是10.x。LTS status表示长期稳定版本的状态。0.10和0.12版本已经完全不用了,4.x目前仍然处于维护期,并会一直持续到2018年的四月。这些NO LTS表示这个版本是没有长期稳定版本的,当下一个版本开发完成后建议升级或者使用之前有LTS的版本。pending表示正在开发中。codename是该版本的代号。active LTS start表示正处于活跃状态的LTS版本。Maintenance LTS Start表示LTS版本维护期的开始时间,后面这个是维护期的终止时间。维护期内的版本不会加入新的特性,只会对原有的BUG进行修复。

NodeJS的特点

之前咱们提到过,NodeJS是一个基于V8引擎的JS运行环境。也就是说它的执行效率非常高,当然这要得益于V8引擎的高效率。NodeJS是一个运行环境,它的扩展性很强,可以引入各种模块来丰富它的功能。当然它也有非常丰富的生态系统,npm管理着几十万个模块,同时你也可以开发自己的模块共享给其他人使用。NodeJS是采用一种基于事件驱动的异步编程模型,这与其他的服务器采用多线程处理异步有很大不同,这种方式更轻量,消耗的资源更少,理论上它能处理更多的并发量。

关于NodeJS的安装及配置和更多的视频请关注公众号—易课堂,我们将免费为您提供下载。请记得为我点赞哦,谢谢!!!

标签: #nodejs路径合并发生冲突应该怎么处理