- Node.js
不是一门语言,不是库、框架,是一个JavaScript运行时环境,
简单来说就是Node.js可以解析和执行JavaScript代码。以前只有浏览器可以解析执行js代码,现在js可以脱离浏览器来运行,归功于Node.js
- Node.js能做什么
Node.js最擅长处理高并发,在Java、PHP或.net等服务端语言中,会为每一个客户端链接创建一个新的线程。
而每个线程需要耗费大约2MB内存,
也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。
Node.js不为每个客户连接创建新线程,而仅仅使用一个线程。
当有用户连接了就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序宏观上也是并行的。
使用Node.js,一个8GB内存的服务器,可以同时处理超过4万用户连接。
- 安装
参见菜鸟教程
mac:推荐通过NVM安装指定版本的node
$ brew install nvm
$ cd ~
$ vim .bash_profile
// 添加以下命令
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
$ source .bash_profile
// 使用nvm安装node
$ nvm ls-remote 查看 所有的node可用版本
$ nvm install xxx 下载你想要的版本
$ nvm use xxx 使用指定版本的node
$ nvm alias default xxx 每次启动终端都使用该版本的node
// 完成
$ node -v
$ npm -v
- 浏览器中的JavaScript
1)EcmaScript:基础语法、if、var、function、Object、Array
2)BOM
3)DOM
- Node.js中的Javascript
1)没有BOM、DOM
2)有EcmaScript (如ES 6)
3)在Node这个js执行环境中为js提供来一些服务器级别的操作API
如:文件读写、网络服务的构建、网络通信、http服务器等处理
- 构建在Chrome的V8引擎之上
1)代码只是具有特定格式的字符串而已,引擎可以帮你去解析和执行
2)Google Chrome的V8引擎是目前公认的解析执行js代码最快的js引擎
3)Node.js的作者把Google Chrome中的V8引擎移植来出来,开发了一个独立的js运行时环境
- Node.js特性
1)事件驱动 2)非阻塞IO模型(异步),使其轻量和高效
- npm (基于node开发的)
npm是世界上最大的开源库生态系统,绝大多数js相关的包都放在npm上,方便开发人员下载使用
国内可使用cnpm
- B/S 编程模型
Browser - Server
任何服务端技术这种B/S编程模型都是一样,和语言无关
Node只是作为我们学习B/S编程模型的一个工具