文章排版需改进的

重识 Node

2016-11-04  本文已影响26人  斐硕人

对于前端而言,虽然不是人人都要拿 Node 写一个服务器程序,但简单可至使用命令交互模式调试 JS 代码片段,复杂可至编写工具提升工作效率。

相信很多初学者和我一样之前学习使用过 Node,可是要是问我 Node 是什么,我还是不清楚。便想着那就边总结边重新学习一遍 Node 吧,也因此这篇文章在不断地更改完善中,且不会涉及到 Node 的安装使用。


什么是 Node ?

JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。

每一种解析器都是一个运行环境,不但允许 JS 定义各种数据结构,进行各种计算,还允许 JS 使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的 JS 的用途是操作 DOM,浏览器就提供了 document 之类的内置对象。而运行在 Node 中的 JS 的用途是操作磁盘文件或搭建 HTTP 服务器,Node 就相应提供了 fs、http 等内置对象。

简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。
Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。

Node 为什么会出现

解决什么问题

提供一种简单的、用于创建高性能服务器及可在该服务器中运行的各种应用程序的开发工具。

Web 的发展导致的问题:

为什么使用 JavaScript

Ryan Dahl 最初的目的是写一个基于事件驱动、非阻塞 I/O 的 Web 服务器,以达到更高的性能,提供 Apache 等服务器之外的选择。

学习一个新的知识,首先要去了解它的历史,了解它为什么会出现。下面是一些我认为比较重要的时间点:

JavaScript 革命

1994 年,网景公司公布服务器端 JavaScript -- LiveWire 。
LiveWire 致命错误:把堵塞式输入/输出包含在内,并在服务器端使用多进程模型,因而可扩展性不好。
1995 年,Brendan Eich 发明了 JavaScript 语言。这是一个在 Netscape Navigator 浏览器运行的脚本语言。
1996 年,第一次浏览器大战。11月,网景公司将 JavaScript 递交给 ECMA 国际标准组织。
1997 年 7 月公布第一个版本,ECMA-262 号标准,又称 ECMAScript 。
服务器端 JavaScript 逐渐式微。
2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。
第二次浏览器大战
CommonJS 规范的提出
ECMAScript 标准的不断推进
JavaScript 的逐渐完善
......
2009 年,Ryan Dahl 利用 Google 的 V8 引擎打造了基于时间循环实现的异步 I/O 框架---Node 。(JavaScript 之前没有任何 I/O 库)

Node 给 JavaScript 带来的意义

Node 打破了过去 JavaScript 只能在浏览器中运行的局面。前后端编程环境统一,可以大大降低前后端转换所需要的上下文交换代价。

  • Node 不仅能够构建服务器端,而且能够适应日益提高的产能,还可以很方便的进行 JavaScript 客户端程序开发,并能够促进代码重用和进化。

Node 的特点

1.异步 I/O
2.事件与回调函数
3.单线程
4.跨平台

与其他流行的 Web 服务器(IIS、Apache)的不同之处

在哪些场合应该考虑使用 Node ?


待续。。。

参考资料:
《Node.js 权威指南》
《深入浅出 Node.js》
《七天学会 NodeJS》

上一篇 下一篇

猜你喜欢

热点阅读