本书主要介绍了Node.js在Web全栈开发领域的应用实践,分别从Node.js基础语法、模块化、服务器搭建、Express框架等方面由浅入深地进行讲解。在企业级应用开发方面也有着重讲解,例如MongoDB数据库的操作、Ajax异步请求与同源策略、Node.js会话跟踪技术的应用、Node.js爬虫程序的实现等。 在企业开发中,Node.js的应用越来越广泛。像Yahoo、Microsoft等公司的很多应用都已经迁移到Node.js了,国内的阿里巴巴、网易、腾讯、新浪、百度等公司的很多线上产品也纷纷改用Node.js开发,并取得了很好的效果。 本书从基础入门到项目实战,为读者逐步揭开Node.js的神秘面纱,帮助读者更好地理解、学习Node.js,并能够使用Node.js开发出优秀的Web应用。无论读者是一个前端开发的新手,还是一个编程高手,这本书都值得去认真阅读。
本书配套了340分钟微课视频,读者可扫码观看。提供全套源代码下载。从基础入门到项目实战,为读者逐步揭开Node.js的神秘面纱,使读者更好地理解、学习Node.js,并能够使用Node.js开发出优秀的Web应用。
如今,科学技术与信息技术快速发展和社会生产力变革对IT行业从业者提出了新的需求,从业者不仅要具备专业技术能力,更要具备业务实践能力和健全的职业素质,复合型技术技能人才更受企业青睐。高校毕业生求职面临的道门槛就是技能与经验,教科书也应紧随新一代信息技术和新职业要求的变化及时更新。
本书倡导快乐学习、实战就业,在语言描述上力求准确、通俗易懂。本书针对重要知识点精心挑选案例,将理论与技能深度融合,促进隐性知识与显性知识的转化。案例讲解包含设计思路、运行效果、实现思路、代码实现、技能技巧详解等。本书引入企业项目案例,从动手实践的角度,帮助读者逐步掌握前沿技术,为高质量就业赋能。
在章节编排上循序渐进,在语法阐述中尽量避免使用生硬的术语和枯燥的公式,从项目开发的实际需求入手,将理论知识与实际应用相结合,促进学习和成长,快速积累项目开发经验,从而在职场中拥有较高起点。
本书特点
本书主要讲解Node.js在Web全栈开发领域的应用实践方法,分别从Node.js基础语法、模块化、服务器搭建、Express框架等方面由浅入深地进行讲解。在企业级应用开发方面也有着重地讲解,例如MongoDB数据库的操作、Ajax异步请求与同源策略、Node.js会话跟踪技术的应用、Node.js爬虫程序的实现等。
阅读本书您将学习到以下内容。
第1章: Node.js简介、运行环境搭建,以及NPM依赖管理工具。
第2章: 用Node.js快速上手编写个程序,模块化开发。
第3章: 掌握异步I/O的概念,了解Node.js的异步I/O中的事件循环、观察者模式、请求对象、执行回调,以及非I/O的异步API。
第4章: 了解Node.js中处理流数据的抽象接口,操作文件的方法。
第5章: 掌握Node.js Web服务器开发的基本方法。
第6章: 了解Express框架的安装与配置方法,中间件和MVC。
第7章: 了解网站中的静态资源并学习搭建静态资源服务器。
第8章: 了解Handlebars模板引擎及其使用方法。
第9章: 了解MongoDB数据库的基本概念、环境搭建方法及mongoose模块。
第10章: 掌握Ajax的工作原理、实现步骤,以及浏览器同源策略。
第11章: 了解会话跟踪的概念并尝试跟踪Express中的会话。
第12章: 通过Node.js实现网络爬虫。
第13章: 构建TCP服务、UDP服务、HTTP服务、WebSocket服务。
第14章: 综合本书知识进行项目实战Express开发投票管理系统。
通过学习本书,读者可以较为系统地掌握Node.js在Web全栈开发的主要知识、操作方法并进行实践。本书从基础入门到项目实战,逐步揭开Node.js的神秘面纱,使读者更好地理解和学习Node.js,并能够使用Node.js开发出优秀的Web应用。
致谢
本书的编写和整理工作由北京千锋互联科技有限公司高教产品部完成,其中主要的参与人员有吕春林、徐子惠、潘亚等。除此之外,千锋教育的500多名学员参与了教材的试读工作,他们站在初学者的角度对教材提出了许多宝贵的修改意见,在此一并表示衷心的感谢。
意见反馈
在本书的编写过程中,作者虽然力求完美,但难免有一些疏漏与不足之处,欢迎各界专家和读者朋友们提出宝贵意见,联系方式: textbook@1000phone.com。
千锋教育高教产品研发部隶属于北京千锋互联科技有限公司,致力于打造IT教育全产业链人才服务平台,公司总部位于北京,目前已在深圳、上海、郑州等多地成立了分公司,每年培养优质人才20000余人,同期在校学员8000余人,合作院校超500所,合作企业超18000家,累计向互联网输出免费教学视频152套,年播放量逾6000万次。截止目前已出版IT图书12本,共规划教材超60余本,选用教材的院校超200余家。
第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网站前台布局