Nodejs 简介
Nodejs 也叫作 Node.js 是一个 JavaScript 的运行环境,它是基于 Chrome V8 引擎创建的, Node.js 的核心功能是基于事件驱动、非阻塞式 I/O 的模型。
Nodejs 可以让 JavaScript 运行在服务端进行功能处理,这让 JavaScript 成为可以与服务端语言:PHP、Python、Perl、Ruby等一样的脚本语言。 它发布于2009年5月,创始人为 Ryan Dahl ,本质上是对Chrome V8引擎进行了再次的封装处理。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。 Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
Nodejs 由来及历史
Ryan Dahl 是 Google Brain 的一个软件工程师,他的工作是用C/C++写高性能Web服务。对于高性能,异步IO、事件驱动是基本原则,但是用C/C++写就太痛苦了。于是他开始设想用高级语言开发Web服务。他评估了很多种高级语言,发现很多语言虽然同时提供了同步IO和异步IO,但是开发人员一旦用了同步IO,他们就再也懒得写异步IO了,所以,最终,Ryan Dahl 瞄向了JavaScript 语言。
因为JavaScript是单线程执行,根本不能进行同步IO操作,所以JavaScript的这一“缺陷”导致了它只能使用异步IO。选定了开发语言,还要有运行时引擎。这位仁兄曾考虑过自己写一个,不过明智地放弃了,因为V8就是开源的JavaScript引擎。让Google投资去优化V8,咱只负责改造一下拿来用,还不用付钱,这个买卖很划算。
于是在2009年,Ryan Dahl 正式推出了基于JavaScript语言和V8引擎的开源Web服务器项目,命名为Node.js。虽然名字很土,但是Node第一次把JavaScript带入到后端服务器开发,加上世界上已经有无数的JavaScript开发人员,所以Node一下子就火了起来。
在Node上运行的JavaScript相比其他后端开发语言最大的优势是借助JavaScript天生的事件驱动机制加V8高性能引擎,使编写高性能Web服务轻而易举。其次,JavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。但是,在Node环境下,通过模块化的JavaScript代码,加上函数式编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准,可以完全满足工程上的需求。
Nodejs 最新版本
官方已经发布 Node.js v12.16.3 (LTS) ,更新内容主要是对部分依赖进行了升级。
Dependencies:
- 升级 OpenSSL 至 1.1.1g #32971
- 升级 c-ares 至 1.16.0 #32246
- 将实验性的 uvwasi 升级至 0.0.6 #32309
ESM (experimental):
- 对于使用条件导出或软件包名称自解析的模块,不再打印其他警告 #31845
最新版下载地址 https://nodejs.org/en/blog/release/v12.16.3/