> [使用 Node.js 的优势和劣势都有哪些?](http://www.zhihu.com/question/19653241/answer/15993549)
> [深入浅出Node.js(一):什么是Node.js](http://www.infoq.com/cn/articles/what-is-nodejs/)
> [多线程有什么用?](http://www.zhihu.com/question/19901763)
> [Github 编程语言分布统计:JavaScript 称霸](http://www.oschina.net/news/57121/github-language-popularity-statistics)
## Node简介
### 客户端的JavaScript是怎样的
- 什么是 JavaScript?
+ 脚本语言
+ 运行在浏览器中
+ 一般用来做客户端页面的交互(Interactive)
- JavaScript 的运行环境?
+ 运行在浏览器内核中的 JS 引擎(engine)
- 浏览器中的 JavaScript 可以做什么?
+ 操作DOM(对DOM的增删改、注册事件)
+ AJAX/跨域
+ BOM(页面跳转、历史记录、console.log()、alert())
+ ECMAScript
- 浏览器中的 JavaScript 不可以做什么?
+ 文件操作(文件和文件夹的CRUD)
+ 没有办法操作系统信息
+ 由于运行环境特殊
- JavaScript 只可以运行在浏览器中吗?
+ 不是
+ 能运行在哪取决于,这个环境有没有特定平台
### 什么是Node

通俗解释;
- Node 就是 JavaScript 语言在服务器端的运行环境
- 所谓“运行环境(平台)”有两层意思:
+ 首先,JavaScript 语言通过 Node 在服务器运行,在这个意义上,Node 有点像 JavaScript 虚拟机;
+ 其次,Node 提供大量工具库,使得 JavaScript 语言与操作系统互动(比如读写文件、新建子进程),在这个意义上, Node 又是 JavaScript 的工具库。
###注意:
- 是Node选择了JavaScript,不是JavaScript发展出来了Node。
- Node是一个JavaScript的运行环境(平台),不是一门语言,也不是JavaScript的框架
*****
- 简介
- 配置安装
- window
- 基础知识
- Node 命令基本用法
- 进程和线程
- 调试
- 异步、回调
- 全局对象
- 非阻塞 I/O和事件驱动和非阻塞机制
- npm包概念
- 模块化
- 实现require和cache
- 核心模块操作
- fs文件系统操作
- 同步调用和异步调用
- 缓冲区处理(二进制数据)
- 文件读取
- 文件写入
- 例子:读取歌词文件显示
- 文件流
- 例子:文件复制
- 监视文件
- 其他文件操作
- 目录操作
- 例子:递归加载目录树
- path路径操作模块
- 网络操作
- URL 解析模块
- querystring查询字符串模块
- crypto加密解密模块
- Socket
- 例子:聊天室
- coffeescript
- Gulp-自动化构建工具
- Gulp实现前端构建
- Gulp后端构建
- 插件
- gulp-load-plugins 模块化管理插件
- gulp-minify-css 压缩css插件
- gulp-sass 将sass预处理为css
- gulp-less 将less预处理为css
- gulp-sourcemaps 插件
- gulp-concat 合并插件
- gulp-uglify 压缩JS插件
- gulp-util gulp常用工具库插件
- yargs插件
- gulp-nodemon 自动启动/重启插件
- coffee-script 插件
- gulp-coffee插件
- gulp-livereload 网页自动刷新
- Moment.js-处理时间插件
- express 前端框架
- Async-异步流程控制插件
- node-progress进度条插件
- JSHint-代码规范检查工具
- lodash -JavaScript 工具库
- 资料
- 框架所用包
- bodyParser