目录
源码下载
第1章初识Node.js
1.1Node.js简介
1.1.1Node.js的发展历程
1.1.2Node.js的特点
1.1.3为什么要使用Node.js
1.2Node.js运行环境安装
1.2.1在Windows上安装Node
1.2.2在Linux上安装Node
1.2.3在macOS上安装Node
1.3NPM依赖管理工具
1.3.1NPM简介
1.3.2NPM的使用
第2章Node.js编程基础
2.1Node.js快速入门
2.1.1Node.js基础
2.1.2创建第一个Node应用
2.2模块化开发
2.2.1模块化的概念
2.2.2CommonJS规范
2.2.3Node.js中的模块化
2.2.4Node.js系统模块
2.2.5第三方模块
第3章异步I/O
3.1什么是异步I/O
3.1.1为什么要使用异步I/O
3.1.2异步I/O与非阻塞I/O
3.2Node.js的异步I/O
3.2.1事件循环
3.2.2观察者模式
3.2.3请求对象
3.2.4执行回调
3.3非I/O的异步API
3.3.1定时器
3.3.2process.nextTick()函数
第4章Stream
4.1Stream的概念
4.1.1Stream简介
4.1.2Stream实现的过程
4.1.3Stream应用场景
4.2使用Stream操作文件
4.2.1Node.js读写文件
4.2.2使用Stream读写文件
4.2.3Stream对性能的影响
4.3readline逐行读取
4.4Buffer二进制流
4.4.1什么是二进制流
4.4.2使用Buffer提升性能
第5章Node.js Web服务器开发
5.1使用Node.js搭建Web服务器
5.1.1http模块
5.1.2事件驱动编程
5.1.3路由
5.1.4静态资源服务
5.2请求与响应对象
5.2.1URL的组成部分
5.2.2HTTP请求方法
5.2.3请求报头
5.2.4响应报头
5.2.5请求体
5.2.6参数
5.2.7请求对象
5.2.8响应对象
第6章Express框架
6.1Express框架简介
6.2Express框架安装与配置
6.2.1安装Express
6.2.2Express目录结构
6.2.3Express的路由管理
6.2.4Express的视图管理
6.3Express中间件
6.3.1中间件的概念
6.3.2Express中间件的使用
6.3.3自定义Express中间件
6.3.4常用的中间件
6.4Express中的MVC
6.4.1MVC概述
6.4.2模型
6.4.3视图模型
6.4.4控制器
第7章静态资源
7.1网站中的静态资源
7.1.1什么是静态资源
7.1.2静态资源对性能的影响
7.2Web应用中的静态资源
7.2.1静态映射
7.2.2视图中的静态资源
7.2.3CSS中的静态资源
7.3搭建静态资源服务器
7.3.1什么是静态资源服务器
7.3.2使用Node搭建静态资源服务器
第8章Handlebars
8.1模板引擎简介
8.1.1什么是模板引擎
8.1.2传统JavaScript模板
8.1.3如何选择模板引擎
8.2Handlebars模板引擎
8.2.1Handlebars简介
8.2.2Handlebars的安装
8.2.3Handlebars的特性
8.3Handlebars的使用
8.3.1注释
8.3.2块级表达式
8.3.3服务器端模板
8.3.4视图和布局
8.3.5在Express中使用布局
8.3.6客户端Handlebars
第9章MongoDB数据库
9.1MongoDB数据库简介
9.1.1什么是数据库
9.1.2数据库的优点
9.1.3MongoDB数据库重要概念
9.2MongoDB数据库环境搭建
9.2.1MongoDB数据库的下载与安装
9.2.2MongoDB Compass可视化工具
9.2.3启动MongoDB服务
9.3mongoose模块
9.3.1mongoose模块简介
9.3.2Schema模式对象
9.3.3Model模型对象
9.3.4Document文档对象
9.4MongoDB模块
9.4.1连接数据库
9.4.2创建集合
9.4.3数据库操作
第10章Ajax异步请求
10.1Ajax基础
10.1.1传统网站中存在的问题
10.1.2Ajax概述
10.1.3Ajax的使用场景
10.1.4Ajax的优点
10.1.5Ajax的缺点
10.2Ajax的工作原理
10.2.1Ajax运行原理
10.2.2XMLHttpRequest对象
10.2.3XMLHttpRequest对象的常用方法
10.3Ajax的实现步骤
10.3.1创建XMLHttpRequest对象
10.3.2设置请求方式
10.3.3调用回调函数
10.3.4发送HTTP请求
10.3.5Ajax的缓存问题
10.4浏览器同源策略
10.4.1什么是同源策略
10.4.2同源策略的限制
10.4.3同源策略的解决方案
10.5RESTful风格API
10.5.1RESTful API 概述
10.5.2为什么要使用RESTful结构
10.5.3RESTful API的实现
第11章会话跟踪
11.1会话跟踪概述
11.1.1HTTP请求的特点
11.1.2什么是会话跟踪
11.1.3会话跟踪的用途
11.2Express中的会话跟踪
11.2.1Express中的Cookie
11.2.2Express中的Session
第12章Node.js实现网络爬虫
12.1网络爬虫概述
12.1.1什么是网络爬虫
12.1.2网络爬虫的实现原理
12.1.3Node.js实现网络爬虫的优势
12.2基于Node实现的爬虫程序
12.2.1安装依赖包
12.2.2实现抓取数据
12.2.3实现爬虫的方法
第13章网络编程
13.1Node构建TCP服务
13.1.1TCP
13.1.2构建TCP服务器
13.2Node构建UDP服务
13.2.1UDP协议
13.2.2创建UDP套接字
13.2.3创建UDP服务器和客户端
13.3Node构建HTTP服务
13.3.1初识HTTP协议
13.3.2Node中的http模块
13.4Node构建WebSocket服务
13.4.1什么是WebSocket
13.4.2WebSocket实例的属性与方法
13.4.3构建WebSocket服务
第14章项目实战: Express开发投票管理系统
14.1项目概述
14.1.1开发环境
14.1.2项目结构
14.2数据库设计
14.2.1连接数据库
14.2.2创建Schema文档对象
14.2.3封装CRUD函数
14.2.4封装文件上传业务逻辑
14.3配置前端开发环境
14.3.1静态文件管理
14.3.2安装依赖
14.4后台功能模块开发
14.4.1系统用户登录
14.4.2系统用户管理
14.4.3候选对象管理
14.4.4投票主题管理
14.4.5投票环节管理
14.4.6投票统计管理
14.5网站前台布局