×
暂无评论
图文详情
  • ISBN:9787122413260
  • 装帧:平装
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:364
  • 出版时间:2022-09-01
  • 条形码:9787122413260 ; 978-7-122-41326-0

本书特色

本书从零基础读者的角度出发,通过通俗易懂的语言、丰富多彩的实例,循序渐进地让读者在实践中学习Node.js编程知识,并提升自己的实际开发能力。全书共分为5篇20章,内容包括初识Node.js、JavaScript基础、npm包管理器、Node.js基础、http模块、fs文件及文件夹操作模块、path路径操作模块、os系统模块、Node.js中的流、socket.io模块、异步编程与回调、事件的监听与触发、程序调试与异常处理、express模块基础、express高级应用之express-penerator、Web开发中的模板引擎、Node.js与MySQL数据库、Node.js与MongoDB数据库、网络版五子棋游戏、全栈博客网等。书中知识点讲解细致,侧重介绍每个知识点的使用场景,涉及的代码给出了详细的注释,可以使读者轻松领会Node.js程序开发的精髓,快速提高开发技能。同时,本书配套了大量教学视频,扫码即可观看,还提供所有程序源文件,方便读者实践。本书适合Node.js初学者、软件开发入门者自学使用,也可用作高等院校相关专业的教材及参考书。

内容简介

本书具有如下特色:? 由浅入深,循序渐进。本书以入门读者为对象,先从语言基础学起,再学习语言的核心技术,然后学习高 级应用,*后学习开发一个完整项目。讲解过程中步骤详尽,版式新颖,使读者在阅读时一目了然,从而快速掌握书中内容。? 语音视频,讲解详尽。书中每一章节均提供声图并茂的教学视频,读者可以扫描书中对应的二维码随时随地学习。这些视频能够引导初学者快速入门,感受编程的快乐和成就感,增强进一步学习的信心,从而快速成为编程高手。? 实例典型,轻松易学。通过例子学习是好的学习方式,本书通过“一个知识点、一个例子、一个结果、一段评析、一个综合应用”的模式,透彻详尽地讲述了实际开发中所需的各类知识。另外,为了便于读者阅读程序代码,快速学习编程技能,书中几乎每行代码都提供了注释。 ? 精彩栏目,贴心提醒。本书根据需要在各章安排了很多“注意”“说明”“技巧”等小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念,更快地掌握个别技术的应用技巧。? 附赠资源,优质服务。除配套视频和源程序外,本书还赠送相关资源库、题库,同时为读者提供社区技术支持、QQ在线答疑等学习服务,收获更好的学习体验。

目录

第1篇 Node.js基础篇

第1章 初识Node.js 2 视频讲解:5节,40分钟

1.1 Node.js简介 3

1.1.1 Web和互联网 3

1.1.2 V8引擎和Node.js 4

1.1.3 Node.js的优缺点 5

1.2 Node.js的下载与安装 5

1.2.1 下载并安装Node.js 5

1.2.2 测试Node.js是否安装成功 10

1.3 WebStorm开发环境的下载与安装 10

1.3.1 WebStorm的下载 10

1.3.2 WebStorm的安装 11

1.4 **个Node.js服务器程序 14

1.4.1 WebStorm首次加载配置 14

1.4.2 使用WebStorm创建**个Node.js程序 16

1.4.3 在WebStorm中运行Node.js程序 19

1.4.4 使用cmd命令运行Node.js程序 20

1.5 熟悉WebStorm开发环境 21

1.5.1 WebStorm功能区预览 21

1.5.2 WebStorm中英文对照菜单 21

1.5.3 常用工具栏 23

1.5.4 常用快捷键 23

1.5.5 WebStorm常用技巧 24

本章知识思维导图 25



第2章 JavaScript基础 26 视频讲解:9节,169分钟

2.1 JavaScript概述 27

2.1.1 Node.js与JavaScript 27

2.1.2 什么是JavaScript语言 27

2.1.3 为什么学习JavaScript语言 27

2.1.4 JavaScript的应用 28

2.2 JavaScript在HTML中的使用 29

2.2.1 在页面中直接嵌入JavaScript代码 30

[实例2.1] 编写**个JavaScript程序 31

2.2.2 链接外部JavaScript文件 32

[实例2.2] 调用外部JavaScript文件 33

2.2.3 作为标签的属性值使用 34

2.3 JavaScript基本语法规则 34

2.4 JavaScript数据类型 36

2.4.1 数值型 36

2.4.2 字符串型 38

[实例2.3] 输出前NBA球星奥尼尔的中文名、英文名和别名 40

2.4.3 布尔值和特殊数据类型 41

2.5 JavaScript流程控制 41

2.5.1 条件判断语句 41

[实例2.4] 判断2021年的2月份有多少天 44

[实例2.5] 判断学生的成绩等级 45

2.5.2 循环控制语句 45

2.6 JavaScript函数 47

2.6.1 函数的定义 48

2.6.2 函数的调用 48

[实例2.6] 为商城中“加入购物车”按钮添加单击事件 50

2.7 DOM文档对象模型 51

2.7.1 DOM概述 51

2.7.2 DOM对象节点属性 53

2.7.3 DOM对象的应用 53

[实例2.7] 实现电影图片的轮换效果 54

2.8 Document文档对象 54

2.8.1 Document文档对象介绍 54

2.8.2 Document文档对象的常用属性 55

2.8.3 Document文档对象的常用方法 55

2.8.4 设置文档前景色和背景色 56

[实例2.8] 动态改变文档的前景色和背景色 56

2.8.5 设置动态标题栏 57

[实例2.9] 实现动态标题栏 57

2.8.6 在文档中输出数据 58

[实例2.10] 对比write()方法和writeln()方法 58

2.8.7 获取文本框并修改其内容 59

[实例2.11] 获取文本框并修改其内容 59

2.9 Window对象 59

2.9.1 Window对象的属性 60

2.9.2 Window对象的方法 60

2.9.3 Window对象的使用 61

本章知识思维导图 62



第3章 npm包管理器 63 视频讲解:1节,9分钟

3.1 npm包管理器简介 64

3.1.1 npm简介 64

3.1.2 npm的版本 64

3.1.3 npm常见软件包 65

3.2 package.json基础 67

3.2.1 认识package.json 67

3.2.2 npm中的package-lock.json文件 69

3.3 使用npm包管理器安装包 71

3.3.1 安装单个软件包 71

3.3.2 安装npm包的指定版本 72

3.3.3 安装所有软件包 73

3.3.4 更新软件包 74

3.3.5 指定npm软件包的安装位置 75

3.3.6 卸载npm软件包 76

3.4 使用npm安装的软件包 76

[实例3.1] 使用npm安装的软件包 76

本章知识思维导图 77



第4章 Node.js基础 78 视频讲解:4节,46分钟

4.1 Node.js全局对象 79

4.1.1 全局变量 79

4.1.2 全局对象 79

[实例4.1] argv属性和exit()方法的初级使用 82

4.1.3 全局函数 84

4.2 模块化编程 85

4.2.1 exports 对象 86

[实例4.2] 计算绝对值与圆的周长 86

4.2.2 module 对象 86

[实例4.3] 使用module模块实现向2021年问好 87

4.3 node.js常用工具——util模块 87

4.3.1 转换异步函数的风格 88

4.3.2 实现对象间的原型继承 88

4.3.3 将对象转换为字符串 89

4.3.4 格式化输出字符串 90

4.3.5 将异步回调方法变成返回Promise实例的方法 91

4.3.6 判断是否为指定类型的内置对象 91

4.4 常用内置模块 94

4.4.1 url模块 95

4.4.2 Query String模块 95

4.4.3 crypto模块 96

[实例4.4] 使用crypto模块生成Hash密码 96

本章知识思维导图 97



第2篇 Node.js核心模块篇

第5章 http模块 100 视频讲解:4节,41分钟

5.1 Web应用服务 101

5.1.1 请求与响应 101

5.1.2 客户端与服务器端 102

5.2 server对象 103

5.2.1 server对象中的方法 103

5.2.2 server对象中的事件 104

5.3 response对象 105

5.3.1 响应HTML文件 106

[实例5.1] 使用fs模块将HTML文件返回给客户端 106

5.3.2 响应多媒体 108

[实例5.2] 实现将图片和视频返回客户端 108

5.3.3 网页自动跳转 109

[实例5.3] 实现网页自动跳转 109

5.4 request对象 110

5.4.1 GET请求 111

5.4.2 POST请求 112

[实例5.4] 使用POST请求获取用户名与密码 112

本章知识思维导图 114



第6章 fs文件及文件夹操作模块 115 视频讲解:3节,48分钟

6.1 文件基本操作 116

6.1.1 检查文件是否存在 116

6.1.2 文件读取 117

[实例6.1] 实现cmd控制台的歌词滚动播放器 118

6.1.3 文件写入 119

[实例6.2] 创建文件并且向文件中写入内容 120

[实例6.3] 为古诗增加古诗赏析 121

6.1.4 异常处理 121

6.2 文件其他操作 122

6.2.1 截断文件 122

[实例6.4] 修改文本文件的大小 123

6.2.2 删除文件 123

[实例6.5] 删除文件 124

6.2.3 复制文件 124

[实例6.6] 复制文件 124

6.2.4 重命名文件 126

[实例6.7] 批量为文件重命名 126

6.3 目录常用操作 127

6.3.1 创建目录 127

[实例6.8] 批量创建文件并放到指定的文件夹中 127

6.3.2 读取目录 129

6.3.3 删除空目录 129

6.3.4 查看目录信息 130

6.3.5 获取目录的绝对路径 132



本章知识思维导图 133

第7章 path路径操作模块 134

7.1 绝对路径和相对路径 135

[实例7.1] 实现cmd控制台读取文件 135

7.2 通过路径获取文件详细信息 136

7.2.1 获取文件所在目录 136

7.2.2 获取文件名 136

7.2.3 获取扩展名 137

[实例7.2] 通过扩展名判断文件夹中的图片文件 137

7.2.4 解析路径的组成 138

7.2.5 从对象返回路径字符串 138

[实例7.3] 通过路径的信息将其转换为路径字符串 139

7.2.6 判断路径是否为绝对路径 140

[实例7.4] 判断并显示所有的绝对路径 140

7.3 实现对路径的解析 141

7.3.1 将路径解析为绝对路径 141

[实例7.5] resolve()方法的使用 142

7.3.2 实现将路径转换为相对路径 142

[实例7.6] 将列表中的绝对路径转换为相对路径 142

7.3.3 多路径的拼接 143

7.3.4 规范化路径 144

7.4 path模块的相关属性 144

本章知识思维导图 145



第8章 os操作系统模块 146

8.1 获取内存相关信息 147

8.1.1 获取系统剩余内存 147

8.1.2 获取系统总内存 147

[实例8.1] 显示系统的内存使用情况 147

8.2 获取网络相关信息 148

8.3 获取系统相关的目录 148

8.3.1 获取用户主目录 148

8.3.2 获取临时文件夹目录 149

8.4 通过os模块获取系统相关信息 149

[实例8.2] 获取计算机操作系统的相关信息 151

[实例8.3] 查看计算机的运行时间 152

8.5 os模块常用属性 154

本章知识思维导图 155



第9章 Node.js中的流 156

9.1 流简介 157

9.1.1 流的基本概念 157

9.1.2 了解Buffe/ 157

9.2 创建可读流 158

9.2.1 流的读取模式与状态 158

9.2.2 可读流的相关事件 158

9.2.3 读取数据 159

9.2.4 设置编码格式 159

9.2.5 暂停流 160

9.2.6 获取流的运行状态 160

9.2.7 销毁数据 161

9.2.8 绑定可写流至可读流 161

9.2.9 解绑可写流 162

9.2.10 可读流的相关属性 163

9.3 创建可写流 163

9.3.1 可写流的相关事件 163

9.3.2 创建可写流 163

9.3.3 设置流的编码方式 164

9.3.4 关闭流 164

9.3.5 销毁流 165

9.3.6 将数据缓冲到内存 166

9.3.7 输出缓冲后的数据 166

9.3.8 可写流的相关属性 167

9.4 双工流与转换流 168

9.4.1 双工流的使用 168

9.4.2 转换流的使用 168

9.5 使用流操作文件 169

9.5.1 创建文件可读流 169

[实例9.1] 读取文件的指定内容 169

9.5.2 创建文件可写流 170

[实例9.2] 使用可写流为文件追加内容 170

本章知识思维导图 171



第10章 socket.io模块 172

10.1 socket.io模块基本操作 173

10.1.1 创建WebSocket服务器 173

10.1.2 创建WebSocket客户端 174

10.1.3 创建WebSocket事件 175

[实例10.1] 实现服务器端与客户端之间的通信 175

10.2 socket通信的类型 177

10.2.1 public通信类型 177

[实例10.2] 使用socket发布一则通知 178

10.2.2 broadcast通信类型 180

[实例10.3] 实现群发消息功能 180

10.2.3 private通信类型 182

[实例10.4] 实现与好友聊天功能 182

10.3 将客户端分组 185

[实例10.5] 实现进群通知和退群通知 186

10.4 项目实战——聊天室 188

[实例10.6] 制作简单聊天室 188

10.4.1 服务器端代码实现 189

10.4.2 客户端代码实现 190

10.4.3 执行项目 191

本章知识思维导图 192



第3篇 异步编程与事件篇

第11章 异步编程与回调 194

11.1 同步和异步 195

11.2 回调函数 196

[实例11.1] 回调函数的简单应用 197

[实例11.2] 异步调用回调函数 197

11.3 使用async/await的异步回调 198

11.3.1 Promise基础 199

11.3.2 为什么使用async/await 199

11.3.3 async/await的使用 200

[实例11.3] 使用async/await执行异步回调 200

11.3.4 使用async/await异步回调的优点 201

本章知识思维导图 202



第12章 事件的监听与触发 203

12.1 EventEmitter对象 204

[实例12.1] 使用EventEmitter创建简单事件 204

[实例12.2] 演示项目中监听事件的添加与触发 205

12.2 添加和触发监听事件 205

12.2.1 添加监听事件 206

12.2.2 添加单次监听事件 207

[实例12.3] 使用emit方法触发事件 208

12.2.3 触发监听事件 208

[实例12.4] 使用emit方法触发事件 208

[实例12.5] 触发带参数的监听事件 209

12.3 删除监听事件 209

[实例12.6] 删除指定的监听事件 210

本章知识思维导图 211



第13章 程序调试与异常处理 212

13.1 使用console.log()调试程序 213

13.2 使用WebStorm调试程序 213

13.2.1 插入断点 214

13.2.2 删除断点 214

13.2.3 禁用断点 214

13.2.4 断点调试 215

13.3 Node.js程序异常处理 216

13.3.1 使用throw关键字抛出异常 216

13.3.2 Error错误对象 217

13.3.3 使用try…catch捕获异常 218

13.4 异步程序中的异常处理 219

本章知识思维导图 221



第4篇 框架及数据应用篇

第14章 express模块基础 224

14.1 认识 express模块 225

14.1.1 创建Web服务器 225

14.1.2 express模块中的响应对象 225

[实例14.1] 实现向客户端响应数组信息 226

14.1.3 express模块中的请求对象 227

[实例14.2] 判断当前请求用户使用浏览器的类型 227

14.2 express模块中的中间件 228

14.2.1 什么是中间件 228

14.2.2 router中间件 230

14.2.3 static中间件 231

[实例14.3] 实现向客户端返回图片 232

14.2.4 cookie parser中间件 232

14.2.5 body parser中间件 233

[实例14.4] 使用中间件实现登录验证功能 233

14.3 实现RESTful Web服务 235

[实例14.5] 实现用户信息的RESTful服务 236

14.3.1 创建数据库 236

14.3.2 实现GET请求 238

14.3.3 实现POST请求 238

[实例14.6] 实现JSON文件的RESTful Web 服务 240

本章知识思维导图 241



第15章 express高级应用之express-generato/ 242

15.1 认识 express-generator框架 243

15.1.1 创建项目 243

15.1.2 设置项目参数 245

15.2 express-generator的初体验 246

[实例15.1] 实现登录和退出功能 246

15.3 项目实战——选座购票 250

[实例15.2] 实现选座购票的功能 250

15.3.1 服务器端代码实现 251

15.3.2 客户端代码实现 252

15.3.3 执行项目 253

本章知识思维导图 254



第16章 Web开发中的模板引擎 255

16.1 ejs模块 256

16.1.1 ejs模块的渲染方法 256

[实例16.1] ejs初体验:使用ejs模板进行渲染 257

[实例16.2] 给客户端返回轨道交通信息 258

16.1.2 ejs模块的数据传递 260

[实例16.3] 返回美团外卖单据 260

16.2 pug模块 262

16.2.1 pug模块的渲染方法 262

[实例16.4] 模拟获取消费券页面 264

16.2.2 pug模块的数据传递 265

[实例16.5] 月度消费账单提醒 265

本章知识思维导图 267



第17章 Node.js与MySQL数据库 268

17.1 MySQL 数据库的下载、安装及配置使用 269

17.1.1 数据库简介 269

17.1.2 下载MySQL 269

17.1.3 安装MySQL 270

17.1.4 配置MySQL环境变量 276

17.1.5 启动MySQL 278

17.1.6 使用Navicat foMySQL管理软件 278

17.2 MySQL数据库操作基础 279

17.2.1 认识SQL语言 279

17.2.2 数据库操作 280

17.2.3 数据表操作 282

17.2.4 数据操作 285

17.3 在Node.js中操作MySQL数据库 289

17.3.1 mysql模块的基本操作 289

[实例17.1] 连接数据库并查询数据 290

17.3.2 Node.js中对MySQL数据库实现增删改查操作 293

[实例17.2] 小型图书管理系统 293

本章知识思维导图 300



第18章 Node.js与MongoDB数据库 301

18.1 认识MongoDB数据库 302

18.1.1 关系型数据库与非关系型数据库 302

18.1.2 下载MongoDB数据库 303

18.1.3 安装MongoDB数据库 304

18.1.4 配置并测试MongoDB数据库 307

18.2 MongoDB数据库基础 309

18.2.1 使用JavaScript语言 309

18.2.2 数据库、集合与文档 310

18.2.3 添加数据 311

18.2.4 查询数据 311

18.2.5 修改数据 313

18.2.6 删除数据 313

18.3 项目实战——心情日记 313

[实例18.1] 制作网站心情日记 313

18.3.1 初始化数据 314

18.3.2 主页的实现 315

18.3.3 添加日记 316

18.3.4 修改日记 317

18.3.5 删除日记 319

18.3.6 用户登录与登出 319

本章知识思维导图 321



第5篇 项目开发篇

第19章 网络版五子棋游戏 324 视频讲解:6节,33分钟

19.1 需求分析 325

19.2 游戏设计 325

19.2.1 游戏功能结构 325

19.2.2 游戏业务流程 326

19.2.3 游戏预览 326

19.3 游戏开发准备 327

19.3.1 游戏开发环境 327

19.3.2 游戏项目构成 328

19.4 登录游戏房间设计 328

19.4.1 登录游戏房间概述 328

19.4.2 登录游戏房间的实现 329

19.5 游戏玩家列表设计 330

19.5.1 游戏玩家列表概述 330

19.5.2 游戏玩家列表的实现 330

19.6 游戏对战设计 332

19.6.1 游戏对战概述 332

19.6.2 游戏对战页面初始化 332

19.6.3 绘制棋盘 334

19.6.4 游戏算法及胜负判定 336

19.6.5 重新开始游戏 337

19.6.6 更改棋盘颜色 338

本章知识思维导图 339



第20章 全栈博客网 340 视频讲解:7节,67分钟

20.1 需求分析 341

20.2 项目设计 341

20.2.1 功能结构 341

20.2.2 业务流程 341

20.2.3 项目预览 342

20.3 项目开发准备 343

20.3.1 项目开发环境 343

20.3.2 文件夹组织结构 344

20.4 注册页面设计 345

20.4.1 注册页面概述 345

20.4.2 顶部区和底部区功能的实现 345

20.4.3 注册功能的实现 348

20.5 登录页面设计 350

20.5.1 登录页面概述 350

20.5.2 登录功能的实现 351

20.6 文章功能模块设计 353

20.6.1 文章功能模块概述 353

20.6.2 发表文章功能的实现 354

20.6.3 个人主页的实现 356

20.6.4 修改文章功能的实现 358

20.6.5 删除文章功能的实现 360

20.7 留言功能设计 361

20.7.1 留言功能概述 361

20.7.2 留言功能的实现 361

本章知识思维导图 364
展开全部

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航