Node.js简介及如何学习Node.js

Stella981 等级 119 0 0

本文介绍Node.js的诞生史以及如何学习Node.js。

Node.js简史

从Node.js的命名上可以看到,Node.js的官方开发语言是JavaScript。之所以选择使用JavaScript,显然与JavaScript的开发人员多有关。总所周知,JavaScript是伴随着互联网的发展而火爆起来的,JavaScript也是前端开发人员必备的技能。同时,JavaScript也是浏览器能直接运行的脚本语言。

但也正是JavaScript在浏览器端的强势,导致了人们对于JavaScript的印象还停留在小脚本的角色,认为JavaScript只能干点前端展示的简单活。

直到Chrome V8引擎(https://v8.dev/)的出现,让JavaScript彻底翻了身。Chrome V8是JavaScript渲染引擎,第一个版本随着Chrome浏览器的发布而发布(具体时间为2008年9月2日)。在运行JavaScript之前,相比其它的JavaScript的引擎转换成字节码或解释执行,Chrome V8将其编译成原生机器码(IA-32、x86-64、ARM或者MIPS CPUs),并且使用了如内联缓存等方法来提高性能。Chrome V8可以独立运行,也可以嵌入到C++应用程序中运行。

随着Chrome V8引擎的声名鹊起,在2009年,Ryan Dahl正式推出了基于JavaScript和Chrome V8引擎的开源Web服务器项目,命名为Node.js。这使得JavaScript终于能够在服务器端拥有了一席之地。Node.js采用事件驱动和非阻塞I/O模型,使其变得轻微和高效,非常适合构建运行在分布式设备的数据密集型实时应用。从此,JavaScript成为了从前端到后端再到数据库层能够支持全栈开发的语言。

Node.js能够火爆的另外一个原因是npm。npm可以轻松管理项目依赖,同时也促进了Node.js生态圈的繁荣,因为npm让开发人员分享开源技术变得不再困难。

以下列举了Node.js的大事件:

  • 2009年3月,Ryan Dahl正式推出Node.js。
  • 2009年10月,Isaac Schlueter首次提出了npm。
  • 2009年11月,Ryan Dahl首次公开宣讲Node.js。
  • 2010年3月,Web服务器框架express.js问世。
  • 2010年3月,Socket.io第一版发布。
  • 2010年4月,Heroku首次实验性尝试对Node.js进行支持。
  • 2010年7月,Ryan Dahl在Google技术交流会上再次宣讲Node.js。
  • 2010年8月,Node.js 0.2.0发布。
  • 2010年年底,Node.js项目受到了Joyent公司的赞助,Ryan Dahl也加入到了Joyent公司负责Node.js的全职开发。
  • 2011年3月,Felix的Node.js指南发布。
  • 2011年5月,npm 1.0发布。
  • 2011年5月,Ryan Dahl在Reddit发帖接受任何关于Node.js的提问。
  • 2011年8月,Linkedin产品在线上开始使用Node.js。
  • 2011年12月,Uber 线上开始使用Node.js。
  • 2012年1月,Ryan Dahl宣布不再参与 Node.js日常开发和维护工作,Isaac Schlueter接任。
  • 2012年6月,Node.js v0.8.0稳定版发布。
  • 2012年12月,Hapi.js框架发布。
  • 2013年4月,用Node.js开发的Ghost博客平台发布。
  • 2013年4月,著名的MEAN技术栈被提出。
  • 2013年5月,eBay分享首次尝试使用Node.js开发应用的经验。
  • 2013年11月,沃尔玛线上用Node.js过程中发现了Node.js内存泄漏问题。
  • 2013年11月,PayPal发布一个Node.js的框架Kraken。
  • 2013年12月,著名的Koa框架发布。
  • 2014年1月,TJ Fontaine接管了Node.js项目。
  • 2014年10月,Joyent和社区成员提议成立Node.js顾问委员会。
  • 2014年11月,多位重量级Node.js开发者不满Joyent对Node.js的管理,创建了Node.js的分支项目io.js。
  • 2015年1月,io.js发布1.0.0版本。
  • 2015年2月,Joyent携手各大公司和Linux基金会成立Node.js基金会,并提议io.js和Node.js和解。
  • 2015年4月,npm支持私有模块。
  • 2015年5月,TJ Fontaine不再管理Node.js并离开Joyent公司。
  • 2015年5月,Node.js和io.js合并,隶属Node.js基金会。
  • 2015年9月8日,Node.js 4.0.0发布。Node.js没有经历1.0、2.0和3.0版本,就直接从4.0开始了,这也预示着Node.js引来了一个新的时代。
  • 2015年10月29日,Node.js 5.0.0发布。
  • 2016年2月,Express作为了Node.js基金会的孵化项目。
  • 2016年3月,爆发著名的left-pad事件。
  • 2016年3月,Google Cloud平台加入了Node.js基金会。
  • 2016年4月26日,Node.js 6.0.0发布。
  • 2016年10月,Yarn包管理器发布。
  • 2016年10月25日,Node.js 7.0.0发布。
  • 2017年9月,NASA的Node.js案例研发布。
  • 2017年5月30日,Node.js 8.0.0发布。
  • 2017年10月31日,Node.js 9.0.0发布。
  • 2018年4月24日,Node.js 10.0.0发布。
  • 2018年10月23日,Node.js 11.0.0发布。
  • 2019年3月13日,Node.js基金会和JS基金会合并成了OpenJS基金会,以促进JavaScript和Web生态系统的健康发展。
  • 2019年4月23日,Node.js 12.0.0发布。
  • 2018年10月22日,Node.js 13.0.0发布。
  • 2020年4月21日,Node.js 14.0.0发布。

为什么叫Node.js

读者们可能会好奇,Node.js为什么要这么命名。其实,一开始Ryan Dahl将他的项目命名为了web.js,致力于构建高性能的Web服务。但是随着项目的发展超出了他最初的预期,项目演变成为了构建网络应用的一个基础框架。

在大型分布式系统中,每个节点——在英文中翻译为node——是用于构建整个系统的独立单元。因此,Ryan Dahl将他的项目命名为了Node.js,期望用于快速构建大型应用系统。

什么是MEAN架构

MEAN是MongoDB、Express、Angular和Node.js的首字母缩写词。从浏览器端到数据库,MEAN全都是使用了JavaScript作为核心开发语言。

曾几何时,业界流行使用LAMP架构(Linux、Apache、MySQL和PHP)来快速开发中小网站。LAMP是开放源代码的,而且使用简单、价格廉价,因此LAMP这个组合成为了当时开发中小网站的首选,号称“平民英雄”。而今,随着Node.js的流行,这使得JavaScript终于能够在服务器端拥有了一席之地。JavaScript成为了从前端到后端再到数据库层能够支持全栈开发的语言。而以MongoDB、Express、Angular和Node.js四种开源技术为基础的MEAN架构,除了具备LAMP架构的一切优点外,更能支撑高可用、高并发的大型互联网应用的开发。MEAN架构势必也会成为新的“平民英雄”。

如何来学习Node.js

正如上面所介绍的,可以围绕Node.js来进行全栈开发。作为初学者,建议采用MEAN架构来开发企业级应用,省时省力!稳定!

更多有关MEAN技术栈及其他内容,可以参阅如下资料:

初次之前,以下是一些Node.js相关的开源的教程,都是免费的哦:

边看书,编敲代码,学以致用,方能掌握技术要领。

参考引用

收藏
评论区

相关推荐

Node.js 如何处理 ES6 模块
Node.js 如何处理 ES6 模块作者: 日期: 学习 JavaScript 语言,你会发现它有两种格式的模块。一种是 ES6 模块,简称 ESM;另一种是 Node.js 专用的 CommonJS 模块,简称 CJS。这两种模块不兼容。很多人使用 Node.js,只会用require()加载模块,遇到 ES6
Deno 运行时入门教程:Node.js 的替代品
Deno 运行时入门教程:Node.js 的替代品作者: 日期: 这几天假期,我学习了一下 。它是 Node.js 的替代品。有了它,将来可能就不需要 Node.js 了。这篇文章就是 Deno 的一个初步介绍,尝试回答为什么 Node.js 不能满足需要,以及 Deno 能够带给我们什么?以下内容主要基于
vs2015中electron开发入门 01
### 安装vs2015插件\[node.js Tools\] 1.在vs工具->扩展更新,查找node关键字,找到如图 ![node.js Tools](https://static.oschina.net/uploads/img/201605/23225301_AcB3.png "node.js Tools") 2.下载安装插件 ### 创建项目
Apache Thrift
### Apache Thrift-Node.js教程 * [Node.js教程](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fccf19881030.blog.csdn.net%2Farticle%2Fdetails%2F109757544%23Nodejs_1) * *
MEAN架构实战:基于MongoDB、Express、Angular、Node.js构建企业级应用
曾几何时,业界流行使用LAMP架构(Linux、Apache、MySQL和PHP)来快速开发中小网站。LAMP是开放源代码的,而且使用简单、价格廉价,因此LAMP这个组合成为了当时开发中小网站的首选,号称“平民英雄”。而今,随着Node.js的流行,这使得JavaScript终于能够在服务器端拥有了一席之地。JavaScript成为了从前端到后端再到数据库层
Node.JS是什么?
百度上是这么说的:Node.js是一个可以快速构建网络服务及应用的平台。该平台的构建是基于Chrome‘s JavaScript runtime,也就是说,实际上它是对Goole V8引擎进行了封装。 **Node.js的优点** nodejs作为一个新兴的后台语言,有很多吸引人的地方: RESTful API 单线程 Node.js可以在不新增
Node.js
1.Node来历 --------     2009年,正是推出基于Javascript语言和V8引擎的开源Web服务项目,命名为Node.js,Node.js是第一次把Javascript带到后端开发。全很很多开发人员都熟悉Javascript,所以Node.js一下子就火了。     Javascript语言本身是完善的函数式语言,在前端开发时,开发
Node.js 12中的ES模块[每日前端夜话0x9E]
**每日前端夜话****0x9E** **每日前端夜话,陪你聊前端。** **每天晚上18:00准时推送。** 正文共:2552 字 预计阅读时间:10 分钟 作者:Brian De Sousa 翻译:疯狂的技术宅 来源:logrocket ![](https://oscimg.oschina.net/oscnet/2ccaf94c-ecd3
Node.js 多进程处理CPU密集任务
Node.js 单线程与多进程 --------------- 大家都知道 Node.js 性能很高,是以异步事件驱动、非阻塞 I/O 而被广泛使用。但缺点也很明显,由于 Node.js 是单线程程序,如果长时间运算,会导致 CPU 不能及时释放,所以并不适合 CPU 密集型应用。 当然,也不是没有办法解决这个问题。虽然 Node.js 不支持多线程,但
Node.js 安装与开发
**Node.js 简介** Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。 V8引擎执行Javascript的速度非常快,性能非常好。 Node.j
Node.js 简单学习
明白 JavaScript 语言,你就会用 Node.js 了。最常见的运行 JavaScript 语言的地方就是用户的浏览器,几乎所有的浏览器上都有个 JavaScript 引擎,这个引擎负责运行在页面中嵌入的 JavaScript 代码。代码是在用户的浏览器上运行的,用户那头叫前端(Frontend),服务器这头叫后端(Backend)。Node.js
Node.js简介及如何学习Node.js
本文介绍Node.js的诞生史以及如何学习Node.js。 Node.js简史 --------- 从Node.js的命名上可以看到,Node.js的官方开发语言是JavaScript。之所以选择使用JavaScript,显然与JavaScript的开发人员多有关。总所周知,JavaScript是伴随着互联网的发展而火爆起来的,JavaScript也是前
NodeJs在windows上安装配置测试
Node.js简介 简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。 安装环境 本机系统:Windo
NodeJs框架对比:Express、Koa、Hapi
--- https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-koa-hapi 1 Introduction -------------- Express.js is the most popular Node.js web applicati
Node学习笔记
Node.js 教程目录 ============ 1. [Node.js 基础](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fwscats%2Fnode-tutorial%2Ftree%2Fmaster%2Ftutorial%2Fbase)