nodejs基础: 发展历史和简介

JavaScript 发展,因为其没有java类似类的感念,所以很多时候JavaScript的代码回相互感染。这个时候就有有些大佬开始展现其天赋以及对编程语言较深的理解,所以就有了nodejs。

看下其发展历程

  • 瑞安 达尔 (Ryan Dahl)也是也是要给神人,其本身不是编程出身,在2004年的时候他还在纽约的罗彻斯特大学数学系读博士。(这个地方可以看出,数学其可以说是万科之基,尤其是编程大佬几乎都是有很深的数学方面的造诣)
  • 2006年可能厌恶了读博的无聊,就退学来到智利的一个小镇。这个时候瑞安对不知道何种原因对网站开发有了兴趣,,然后走上了码农之路。 这个时候Ruby on Rails (是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。)很火。所以瑞安就学了它。
  • 从此瑞安就开始接项目,然后开启全球出差然后挣钱的日子。工作两年后就成了专家,从开发应用变成了专门为客户解决性能问题的专家。这个时候开始写一些开源项目帮助客户解决web服务器的高并发性问题。尝试了很多语言都失败了。
  • V8引擎的到来,让瑞安感觉到希望,因为V8满足他关于高性能web服务器的想象。
  • 2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。
  • 2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node包,随后几个月里,有人开始使用Node开发应用。
  • 2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。
  • 2010年年底,Node获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node的发展。
  • 2011年7月,Node在微软的支持下发布Windows版本。

V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,又节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉。

虽然让Javascript运行于服务器端不是Node的独特之处,但却是其一强大功能。不得不承认,浏览器环境限制了我们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现。虽然还存在其他一些支持Javascript在服务器端 运行的平台,但因为上述特性,Node发展迅猛,成为事实上的平台。

在Node启动的很短时间内,社区就已经贡献了大量的扩展库(模块)。其中很多是连接数据库或是其他软件的驱动,但还有很多是凭他们的实力制作出来的非常有用的软件。

最后,不得不提到的是Node社区。虽然Node项目还非常年轻,但很少看到对一个项目如此狂热的社区。不管是新手,还是专家,大家都围绕着项目,使用并贡献自己的能力,致力于打造一个探索、支持、分享、听取建议的乐土。

Node作为一个新兴的前端框架,后台语言,有很多吸引人的地方:RESTful API,单线程

Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。
总结Node.js特点:

  • 事件驱动
  • 非阻塞IO模型(异步)
  • 轻量和高效
    盗一张图解释一下:

在这里插入图片描述

注意:

  • 浏览器是JavaScript的前端运行环境。
  • Node.js是JavaScript的后端运行环境,因此Node.js自然无法调用浏览器的内置如DOM和BOM的API.

虽然作为一个JS运行的环境,仅仅提供基础的功能和API,但是这个相当于一个房基也就是基于这个环境,而社区大佬却开发出很多强大的工具和框架,让Node.js变得更加牛逼变成了一个平台,然后通过不同的框架等实现不同的功能。

比如在演示Ajax的时候使用的Express框架搭建一个Web应用,这个就是基于Node.js这个平台

所以下面开始聊起基础的使用的规则以及注意事项,然后聊一些框架。

至于如何按照nodejs,不在演示了,可以看官网:http://nodejs.cn/;然后下载安装即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值