编辑推荐
本书采用理论与操作相结合的方式详细讲解Node.js 中的核心技术,包括模块化编程、异步编程、文件操作、数据处理、
网络编程等内容,增加了该技术的实用性和可
操作性。
内容简介
Node.js 是一个可以用JavaScript 语言编写服务器端程序的开发平台。近几年,Node.js 逐
渐发展为一个成熟的开发平台,吸引了许多编程人员,有许多大型网站都采用Node.js 进行开
发。本书详细讲解Node.js 中的核心技术,包括模块化编程、异步编程、文件操作、数据处理、
网络编程等内容。本书采用理论与操作相结合的方式进行讲解,以增加该技术的实用性和可
操作性。在后一章,综合前面的技术进行实际的项目编写,帮助读者学以致用。
本书适合作为高等院校计算机相关专业程序设计类课程或者Web 开发的教材,也可作为
广大计算机编程爱好者的参考用书。
作者简介
“中关村黑马程序员训练营”是由传智播客教育科技有限公司(简称传智播客)联合中关村软件园、CSDN,并委托传智播客进行教学实施的软件开发高端培训机构,致力于服务各大软件企业,解决当前软件开发技术飞速发展,而企业招不到优秀人才的困扰。 目前,“中关村黑马程序员训练营”已成长为行业“学员质量好、课程内容深、企业满意”的移动开发高端训练基地,并被评为中关村软件园重点扶持人才企业。
目录
目 录
第1章 模块化编程 ................... 1
1.1 初识模块化思想 ................... 1
1.1.1 模块化的概念 ............ 2
1.1.2 模块化开发 ................ 2
1.2 模块化编程的演变 ............... 3
1.2.1 全局函数 .................... 4
1.2.2 对象命名空间 ............ 6
1.2.3 函数的作用域
(闭包) ..................... 8
1.2.4 维护和扩展 .............. 10
小结 .............................................. 13
习题 .............................................. 13
第2章 初识Node.js ????14
2.1 Node.js概述 ........................ 14
2.1.1 学习Node.js的目的 .... 14
2.1.2 客户端和服务器端 .... 15
2.1.3 JavaScript在客户端和
服务器端的区别 ...... 15
2.2 Node.js简介 ........................ 16
2.2.1 Node.js的概念 .......... 16
2.2.2 Node.js的特点和
优势 .......................... 16
2.3 Node.js的安装和配置 ........ 17
2.3.1 下载和安装 .............. 17
2.3.2 CMD命令台 ............. 20
2.3.3 Path环境变量 ........... 22
2.3.4 快速体验Node.js ...... 23
2.4 Node.js基础入门 ................ 25
2.4.1 REPL运行环境 ......... 25
2.4.2 global对象和模块
作用域 ...................... 27
2.4.3 全局可用变量、函数
和对象 ...................... 31
2.4.4 Node.js模块化重写
计算器案例 .............. 34
2.4.5 require()的模块加载
规则 .......................... 36
2.4.6 模块的缓存 ............. 38
小结 .............................................. 39
习题 .............................................. 40
第3章 异步编程和包资源
管理 ????????????????41
3.1 异步编程 ............................. 41
3.1.1 同步和异步 ............. 42
3.1.2 回调函数 .................. 44
3.2 Node.js的包和NPM ............ 48
3.2.1 包的概念 .................. 48
3.2.2 NPM的概念 .............. 49
3.2.3 NPM的基本应用 ...... 50
3.2.4 包模块加载规则 ...... 51
小结 .............................................. 53
习题 .............................................. 53
第4章 Node.js文件
操作 ??????????????? 54
4.1 基本文件操作 ..................... 54
4.1.1 文件写入 .................. 55
4.1.2 向文件中追加内容 .... 58
4.1.3 文件读取 .................. 60
4.1.4 文件复制 .................. 61
4.1.5 获取文件信息 .......... 64
4.2 案例——控制歌词滚动 ..... 67
4.3 文件相关操作 ..................... 70
4.3.1 路径字符串操作
(Path模块) ............ 70
4.3.2 目录操作 .................. 71
小结 .............................................. 75
习题 .............................................. 75
第5章 Node.js中处理
数据I/O ?????????? 76
5.1 Buffer缓冲区 ...................... 77
5.1.1 二进制数据和乱码 ... 77
5.1.2 Buffer的构造函数 .... 79
5.1.3 写入缓冲区 .............. 80
5.1.4 从缓冲区读取数据 .... 82
5.1.5 拼接缓冲区 .............. 83
5.2 Stream文件流 ..................... 84
5.2.1 文件流的概念 .......... 84
5.2.2 Node.js的可读流和
可写流 ...................... 85
5.2.3 使用pipe()处理大
文件 .......................... 89
小结 .............................................. 90
习题 .............................................. 90
第6章 Node.js网络
编程 ????????????????91
6.1 Node.js网络编程基础 ........ 92
6.1.1 IP地址和端口号 ....... 92
6.1.2 套接字Socket简单
模型 .......................... 93
6.2 Node.js中实现套接字
服务 ...................................... 95
6.2.1 Net.Server对象 ......... 95
6.2.2 Net.Socket对象 ......... 99
6.3 Node.js进程管理 .............. 106
6.3.1 Process模块获取
终端输入 ................ 106
6.3.2 多人广播消息 ........ 107
6.4 案例——终端聊天室 ....... 110
小结 ............................................ 120
习题 ............................................ 120
第7章 Node.js中实现
HTTP服务 ????? 121
7.1 HTTP协议 ......................... 122
7.1.1 HTTP协议简介 ...... 122
7.1.2 HTTP请求响应
流程 ........................ 124
7.1.3 HTTP的请求报文和
响应报文 ................ 125
7.2 Node.js的HTTP服务 ........ 130
7.2.1 HTTP模块常用
API .......................... 130
7.2.2 使用HTTP模块构建
Web服务器 ............. 133
7.3 HTTP服务请求处理 ......... 134
7.3.1 根据不同的URL发送
不同响应消息 ........ 134
7.3.2 HTTP处理静态资源
服务 ........................ 136
7.3.3 动态处理静态资源
请求 ........................ 141
小结 ............................................ 146
习题 ............................................ 146
第8章 综合项目——我的
音乐 ??????????????147
8.1 项目简介 ........................... 147
8.1.1 项目功能展示 ........ 148
8.1.2 项目开发流程 ........ 149
8.1.3 需求分析 ................ 150
8.1.4 项目结构 ................ 150
8.2 项目实现 ........................... 151
8.2.1 项目初始化 ............ 151
8.2.2 制作数据文件 ........ 156
8.2.3 制作音乐首页 ........ 157
8.2.4 添加歌曲 ................ 159
8.2.5 删除歌曲 ................ 162
8.2.6 编辑歌曲 ................ 163
小结 ............................................ 166
习题 ............................................ 166
前言/序言
Node.js 发展及概要
随着互联网行业的持续发展,移动互联网等新业务不断发展壮大,相应的业务平
台的开发形成了大量的人才缺口,尤其是Web 前端。JavaScript 作为Web 前端的核心
技术,现在更是可以用于编写后台程序,这种进步就是由Node.js 带来的。Node.js 是
一个JavaScript 运行环境,其优点为方便搭建、响应速度快、易于扩展等。Node.js 已
成为Web 前端编程人员必须掌握的一门新兴技术。
为什么要学习《Node.js 核心技术教程》
一个优秀的Web 开发工程师需要具备一定的综合素质才能胜任企业日益复杂多
变的要求,全栈工程师(Full Stack Engineer)的概念开始兴起。全栈工程师要熟练处
理各层间的交互。Node.js 出现后,用JavaScript 语言既可以进行客户端开发,又可以
进行服务器端开发,还可以与数据库交互。这样便大大减少了开发人员的学习成本,
为程序开发创造了良好的条件。本书正是讲解Node.js 的核心技术。
如何使用本书
本书面向具有JavaScript 基础的读者。请读者学习过JavaScript 课程后,再学习
本书。
本书详细讲解了Node.js 的基本知识和使用方法,力求将一些非常复杂、难以理
解的思想和问题简单化,让读者能够轻松理解并快速掌握。本书对每个知识点都进行
了深入分析,并针对每个知识点精心设计了相关案例,帮助读者理解和掌握Node.js
的核心技术,提高读者的实践操作能力。
本书共分为8 章,下面分别对每个章节进行简要介绍。
(1)第1 章主要介绍了模块化编程。Node.js 是一个高度模块化的平台,学习模
块化思想可以帮助读者更好地理解和使用Node.js。
(2)第2 章讲解了Node.js 的安装配置和一些基础概念。通过学习本章,读者已
经准备好了开发环境和一些必备知识,为后面的核心技术奠定了基础。
(3)第3 章讲解了异步编程和包资源管理。这也是Node.js 中非常常见的操作。
(4)第4 章主要讲解了Node.js 文件操作。通过学习本章,读者可以很好地运用
Node.js 对文件进行读取、修改、复制等操作。
(5)第5 章主要讲解了数据处理I/O。数据与文件的处理是服务器端编程与客户
端编程的本质区别所在,对于擅长前端编程的读者,应该重点掌握本章的内容,习惯
用服务器端的思想来理解数据处理的问题。
(6)第6 章主要讲解了网络编程的Net 模块。通过学习本章,读者可以学会如
何使用Node.js 进行设备间数据的传输。
(7)第7 章主要讲解网络编程的HTTP 模块。通过学习本章,读者可以学会如
何使用Node.js 进行响应和请求的处理。
(8)第8 章主要讲解了一个后台管理系统。通过学习本章,读者可以了解实际
开发流程,实战用Node.js 进行后台管理程序的编写。
在学习过程中,读者一定要亲自实践书中的案例代码。如果不能完全理解书中所
讲知识,可以登录博学谷平台,通过平台中的教学视频进行深入学习。学习完一个知
识点后,要及时在博学谷平台上进行测试,以巩固学习内容。另外,如果读者在理解
知识点的过程中遇到困难,建议不要纠结于某个地方,可以先往后学习。通常来讲,
看到后面对知识点的讲解或者其他小节的内容后,前面看不懂的知识点一般就能理解
了。如果读者在动手练习的过程中遇到问题,建议多思考,理清思路,认真分析问题
发生的原因,并在问题解决后多总结。
致谢
本书的编写和整理工作由传智播客教育科技股份有限公司完成,主要参与人员有
吕春林、马丹、金鑫、马伦、刘晓强、汪磊等,全体人员在这近一年的编写过程中付
出了很多辛勤的汗水,在此一并表示衷心的感谢。
意见反馈
尽管我们尽了大的努力,但书中难免会有不妥之处,欢迎各界专家和读者朋友
来信来函提出宝贵意见,我们将不胜感激。在阅读本书时,若发现任何问题或有不认
同之处可以通过电子邮件与我们取得联系。
请发送电子邮件至itcast_book@vip.sina.com。
黑马程序员
2017 年2 月
Node.js核心技术教程 电子书 下载 mobi epub pdf txt