NodeJS安装及简要介绍
一、nodeJS简介
Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触角伸到了服务器端。与PHP、JSP等相比,Node.js跳过了Apache、Nginx、IIS等HTTP服务器,它自己不用建设在任何服务器软件之上。Node.js的许多设计理念与经典架构(LAMP)有着很大的不同,可以提供强大的伸缩能力。
Node.js可以在任何操作系统上安装,底层都是Chrome V8引擎,使用C++开发的。
下载地址:https://nodejs.org/en/download/
二、nodejs的安装
下载之后,如何安装?双击:
我们安装的是msi这样格式的安装包,它是microsoft installer,微软安装器这么一个格式。
下一步、下一步进行安装。
注意安装路径不能有中文,所有的设置不要更改,直接下一步即可。
此时如何证明自己安装好了呢?
我们需要打开系统的CMD命令行窗口,CMD就是commond的简写,表示命令。类似Linux、DOS系统使用命令来操作系统这么一个工具。
按windows + R, 打开运行窗口:
此时就会打开这么一个黑底白字的窗口,我们叫做CMD窗口:
此时输入这个命令,就可以查看我们安装的nodejs的版本号:
$ node -v
注意$符号是Linux系统中(后面会学习)命令行中普通用户的表示符号,注意,我们输入的时候不要输入$,这里只是一个表示符号。
输入→node -v,cmd中显示v6.8.1,表示我们成功安装了nodejs的6.8.1版本
三、nodejs的哲学
我们先说说异步I/O:绝大多数的网站I/O是非常多的,I就是input数据的读取,O就是Output数据的写入,但是I/O的时候CPU是命令磁盘去做事情,此时CPU自己就闲置了。
示意图:
此时磁盘就特别忙,CPU就歇着了:
上图这种模式叫做同步I/O。
同步(synchronous):当系统遇见了一个需要耗费大量时间的事情的时候,选择死等。
异步(Asynchronous):当系统遇见了一个需要耗费大量时间的事情的时候,不死等,先做后面的事情,耗时事情做完之后,执行回调函数。
在2006年左右Ryan Dahl眼前的世界是这样的,我们用PHP代码举例:
2008年Google发明了Chrome浏览器,使用了V8引擎来解析JS程序,非常的快。并且V8引擎性能好、都是异步I/O,闭包特性方便。Ryan Dahl就把V8移植到了服务器端。
我们写一段js程序,就是01.js案例:
结果:
此时真的是先输出5050,然后输出哈哈。此时可以证明读取test.txt文件是异步的,CPU命令磁盘驱动器工作之后,CPU自己去执行了后面的语句。等到I/O结束,执行回调函数。
这里有一个坑:
一定注意要先用cd命令切换盘符:
$ cd c:\node_study\day1
然后node
$ node 01.js
严禁使用绝对路径拖拽!因为fs读取文件的时候,是相对于光标位置来读取的。
这就是Node.js的哲学:是一个专注于实现高性能Web服务器优化的专家,几经探索,几经挫折后,遇到V8而诞生的项目。
Node.js解决性能问题使用非常极端的思想:与其一堆服务员闲着,还不如一个服务员往死里用。
四、nodejs的版本
自2009年诞生以来,Node.js的版本号,一直就是0.×.×。Node.js向下兼容做的非常好,所有的高版本,会deprecate(建议放弃)一些老版本的API,但不会完全不支持。
2014年12月,多位重量级Node.js开发者不满Joyent对Node.js的管理,自立门户创建了io.js。io.js的发展速度非常快,先是于2015年1月份发布了1.0版本,并且很快就达到了2.0版本,社区非常活跃。但io.js社区很快又宣布,这两个项目将合并到Node基金会下,并暂时由“Node.js和io.js核心技术团队联合监督”运营。
在Node.js和io.js首次融合的4.0.0版本中,开发者们可以看到其对ES6特性的扩展支持,并且大多数都是默认启用的,比如:classes、typed arrays、generators、Promises、Symbols、collections、arrow functions、block scoping)、template strings等等。