新書推薦:
《
啊哈!原来如此(中译本修订版)
》
售價:NT$
290.0
《
部分识别入门——计量经济学的创新性方法
》
售價:NT$
345.0
《
东野圭吾:变身(来一场真正的烧脑 如果移植了别人的脑子,那是否还是我自己)
》
售價:NT$
295.0
《
推荐连接万物
》
售價:NT$
290.0
《
严复与福泽谕吉启蒙思想比较(王中江著作系列)
》
售價:NT$
750.0
《
甘于平凡的勇气
》
售價:NT$
225.0
《
存在与结构:精神分析的法国转向——以拉康与萨特为中心
》
售價:NT$
240.0
《
生成式人工智能:AIGC与多模态技术应用实践指南
》
售價:NT$
495.0
編輯推薦:
全面、深入总结资深全栈工程师多年的项目实战经验,详解Node.js基础知识、常用框架和项目开发的完整流程。
视频教学:为重点、难点内容录制配套教学视频,帮助读者高效、直观地学习。
由浅入深:从Node.js的基本概念讲起,逐步深入Node.js的主流框架,并进行项目实战,学习门槛低,容易上手。
实例丰富:结合大量实例讲解知识点,并详细介绍3个基于Node.js的开发框架的用法。
项目实战:详解基于Node.js MySQL Vue的微信小程序商城项目开发的全过程,帮助读者系统地掌握Node.js全栈开发技术,从而具备开发商业项目的能力。
经验总结:全面归纳和总结作者多年积累的项目开发经验,让读者少走弯路。
內容簡介:
《Node.js全栈开发:从入门到项目实战》从Node.js的基本概念讲起,逐步深入基于Node.js的主流开发框架技术,最后结合完整的项目案例重点介绍基于Node.js的微信商城项目开发的全过程,帮助读者系统地掌握Node.js全栈开发技术,从而具备开发商业级应用的能力。
《Node.js全栈开发:从入门到项目实战》共15章,分为3篇。第1篇为Node.js开发基础知识,主要介绍Node.js入门知识、Node.js模块化管理、JavaScript基础知识、Node.js的内置模块、数据库操作等。第2篇为Node.js开发主流框架,主要介绍Express框架、Koa框架和Egg框架。第3篇为项目实战,主要基于Node.js MySQL Vue,开发一个完整的微信商城项目,演示完整的商业级全栈项目开发的全过程,并简单介绍Node.js程序、微信小程序和Vue程序性能优化涉及的相关知识。
《Node.js全栈开发:从入门到项目实战》通俗易懂,案例典型,实用性强,特别适合Node.js全栈开发的入门和进阶人员阅读,也适合前后端项目开发人员和Java程序员等编程爱好者阅读,还适合作为高校和相关培训机构的实践教材。
關於作者:
潘成均,网名“黑马腾云”,研究生学历。多家公司的技术合伙人和创始人,多个平台的技术顾问,InfoQ签约作者,全栈开发践行者。具有多年的互联网项目研发经验和丰富的团队管理经验。曾主导多个大型项目的开发并取得成功,涉及金融互联网、大数据车联网、银行和电力等行业。运营微信公众号“自学帮”,定期分享一些技术干货。
目錄 :
第 1 篇 Nodejs 开发基础知识
第 1 章 Nodejs 概述 2
11 Nodejs 简介 2
111 Nodejs 是什么 2
112 Nodejs 能做什么 3
113 Nodejs 架构原理 6
114 Nodejs 的发展历程 7
12 Nodejs 的安装配置 8
121 在 Windows 中安装 Nodejs 8
122 在 Linux 中安装 Nodejs 10
13 编写第一个 Nodejs 程序 11
131 创建 Nodejs 应用 11
132 运行 Nodejs 应用 12
14 开发工具及其调试 13
141 安装 Visual Studio Code 13
142 调试 Nodejs 程序 16
15 创建 Web 服务器案例 18
16 本章小结 19
第 2 章 Nodejs 模块化管理 20
21 JavaScript 模块化 20
211 什么是模块化 20
212 模块化的发展史 22
213 CommonJS 规范 25
214 ES 6 模块化规范 27
22 Nodejs 模块分类 30
221 核心模块 30
222 自定义模块 31
223 第三方模块 32
23 NPM 包管理器 33
231 NPM 简介 33
232 使用 NPM 管理模块 34
233 使用 YARN 管理模块 37
Nodejs 全栈开发:从入门到项目实战
24 本章小结 40
第 3 章 JavaScript 基础知识 41
31 JavaScript 语法基础 41
311 JavaScript 简介 41
312 变量与数据类型 42
313 运算符 44
314 表达式及语句 48
32 程序控制结构 48
321 分支结构 48
322 循环结构 50
33 函数的定义与使用 53
331 函数的声明与调用 53
332 函数的参数 54
333 函数的返回值 56
334 函数的注释 56
34 常用的内置对象 57
341 数组 Array 57
342 数学对象 Math 63
343 日期对象 Date 65
344 字符串 String 66
35 ES 6 新增的语法 67
351 变量和常量 67
352 解构赋值 68
353 扩展运算符 69
354 字符串新增的方法 69
355 数组新增的方法 70
356 对象新增的方法 71
357 箭头函数 72
358 Set 和 Map 72
359 Class 类及其继承 73
3510 Promise 和 Async 74
36 本章小结 75
第 4 章 Nodejs 的内置模块 76
41 Nodejs 模块 76
411 module 模块 76
412 global 全局变量 77
413 Console 控制台 78
414 Errors 错误模块 80
42 Buffer 缓冲区 83
·VI · 目录
421 缓冲区与 TypeArray 83
422 Buffer 类 84
43 child_process 子进程 87
431 创建子进程 87
432 父进程和子进程间的通信 89
44 events 事件触发器 90
441 事件循环 90
442 EventEmitter 类 91
45 timmers 定时器 95
451 Nodejs 中的定时器 95
452 调度定时器 95
46 path 路径 96
47 fs 文件系统 98
471 fs 模块简介 98
472 文件的基本操作 101
48 NET 网络 105
481 net 模块简介 105
482 TCP 服务器 106
49 dgram 数据报 108
491 dgram 模块简介 108
492 UDP 服务器 108
410 超文本传输协议模块110
4101 HTTP 模块简介 110
4102 HTTP 服务器 111
411 本章小结 113
第 5 章 数据库操作 114
51 Nodejs 操作 MySQL 114
511 安装 MySQL 114
512 MySQL 的基本命令 119
513 在 Nodejs 中使用 MySQL 122
52 Nodejs 操作 MongoDB 128
521 安装 MongoDB128
522 MongoDB 的基本命令 133
523 在 Nodejs 中操作 MongoDB 138
53 Nodejs 操作 Redis 142
531 安装 Redis 142
532 Redis 的基本命令 145
533 在 Nodejs 中使用 Reids 151
54 本章小结 153
·VII· Nodejs 全栈开发:从入门到项目实战
第 2 篇 Nodejs 开发主流框架
第 6 章 Express 框架 156
61 Express 框架入门 156
611 Express 简介 156
612 Express 的基本用法 157
613 托管静态资源 161
62 Express 路由 163
621 路由简介 163
622 路由的用法 165
63 Express 中间件 166
631 中间件简介 166
632 中间件的分类 170
633 自定义中间件 175
64 使用 Express 编写接口 178
641 Web 开发模式 178
642 编写 RESTfull API 179
643 跨域问题 182
644 身份认证 191
65 常用的 API 205
651 模块方法 205
652 Application 对象 205
653 Request 对象 206
654 Response 对象 206
655 Router 对象 206
66 本章小结 206
第 7 章 Koa 框架 207
71 Koa 简介 207
711 Koa 框架的发展 207
712 创建 Hello World 程序 208
713 Koa 与 Express 的区别 209
72 Context 上下文对象 210
721 Context 上下文 210
722 Request 对象 211
723 Response 对象 212
73 Koa 路由 213
731 路由的基本用法 213
732 接收请求数据 214
733 路由重定向 218
·VIII · 目录
74 Koa 中间件 219
741 中间件的概念 219
742 静态资源托管 223
743 常用的中间件 225
744 异常处理 226
75 本章小结 230
第 8 章 Egg 框架 231
81 Egg 简介 231
811 Egg 是什么 231
812 第一个 Egg 程序 233
82 Egg 路由 236
821 定义路由 236
822 RESTfull 风格的路由 237
823 获取参数 238
824 获取表单内容 240
825 路由重定向 241
83 Egg 控制器 242
831 编写控制器 243
832 获取 HTTP 请求参数 245
833 调用 Service 层247
834 发送 HTTP 响应 247
84 Egg 的 Service 248
841 Service 的概念 248
842 使用 Service 249
85 Egg 中间件 250
851 编写中间件 251
852 使用中间件 252
86 Egg 插件 254
861 插件简介 254
862 常用的插件 255
863 数据库插件 256
87 本章小结 259
第 3 篇 项目实战
第 9 章 百果园微信商城需求分析 262
91 需求分析 262
92 技术选型 264
93 环境准备 264
94 本章小结 266
·IX· Nodejs 全栈开发:从入门到项目实战
第 10 章 百果园微信商城架构设计 267
101 系统架构 267
102 数据库设计 269
103 本章小结 274
第 11 章 百果园微信商城后端 API 服务 275
111 项目搭建 275
1111 项目初始化 275
1112 封装返回 JSON 276
1113 路由模块化配置 277
112 接口安全校验 278
1121 Token 校验 278
1122 登录校验 281
1123 接口授权 288
113 登录接口 290
1131 数据库的初始化 290
1132 用 ORM 实现查询 292
1133 密码加密 295
1134 日志封装 296
114 接口权限验证 298
1141 拦截模块的方法 298
1142 权限验证通过的处理 300
1143 权限验证失败的处理 303
1144 权限验证的实现 304
115 商品分类管理 API 310
1151 添加商品分类310
1152 获取分类列表312
1153 获取指定的分类 316
1154 修改指定的分类 317
1155 删除指定的分类 318
116 分类参数管理 API 319
1161 添加分类参数319
1162 获取分类参数列表 321
1163 获取分类参数详情 322
1164 修改分类参数323
1165 删除分类参数324
117 商品管理 API 325
1171 上传图片 326
1172 添加商品 327
1173 获取商品列表339
1174 删除商品 341
·X· 目录
1175 修改商品 342
1176 获取商品详情343
118 小程序端 API 344
1181 获取最新商品列表 345
1182 获取商品详情346
1183 获取分类列表346
1184 根据分类获取商品 347
119 本章小结 347
第 12 章 百果园微信商城 Vue 管理后台 348
121 Vue 项目搭建 348
1211 创建项目 348
1212 搭建路由 349
1213 使用 Element-UI 制作组件 353
122 登录页面及其功能的实现 353
1221 安装并设置 Axios 353
1222 实现登录和退出功能 354
123 分类管理功能的实现357
1231 获取分类列表357
1232 添加分类 358
1233 修改分类 360
1234 删除分类 362
124 分类参数管理功能的实现 363
1241 获取分类参数列表 363
1242 添加分类参数365
1243 修改分类参数366
1244 删除分类参数367
1245 添加参数标签368
1246 删除参数标签369
125 商品管理功能的实现369
1251 获取商品列表369
1252 搜索商品 371
1253 添加商品 371
1254 删除商品 377
1255 修改商品 377
126 本章小结 382
第 13 章 百果园微信商城小程序 383
131 搭建项目 383
1311 项目创建及配置 383
1312 配置 tabBar 384
·XI· Nodejs 全栈开发:从入门到项目实战
1313 制作静态页面385
132 封装公共功能 392
1321 封装公共变量392
1322 封装网络请求392
133 首页 393
1331 首页功能说明393
1332 封装业务逻辑393
1333 获取接口数据394
1334 渲染页面数据395
134 列表页 396
1341 传递分类参数396
1342 接口数据渲染396
135 详情页 398
1351 传递商品参数398
1352 封装业务逻辑398
1353 获取商品数据399
1354 渲染商品数据399
136 本章小结 401
第 14 章 百果园微信商城项目部署与发布 402
141 Nodejs 接口部署 402
142 小程序发布 405
143 管理后台部署 408
144 本章小结 409
第 15 章 百果园微信商城性能优化初探 411
151 Nodejs 程序优化 411
152 小程序优化 412
153 Vue 程序优化 414
154 本章小结 416
·XII ·
內容試閱 :
企业级 Web 项目开发通常采用前后端分离的模式,前端工程师负责界面开发、数据渲染,
后端工程师负责业务逻辑处理和数据交互。相比以前不分离的开发模式,前后端分离的模式
体现了分工的精细化,能在一定程度上提高团队的开发效率,也能降低企业招聘难度。但在
有些场景下,这种分工也带来了问题。例如,一位前端开发人员要完成一个完整的毕业设计
项目或小型项目,他需要后端开发人员配合或者自己学习后端开发技术来解决。有了 Node.js,
前端工程师几乎不需要花费额外的学习成本就可以完成后端开发。在企业级开发领域,阿里
巴巴公司率先引入了 Node.js 技术,腾讯等企业也在其产品中验证了 Node.js 的高并发特性。
Node.js 使用 JavaScript 作为开发语言,与传统的 Web 开发模式相比,由于它的运行环境
脱离了浏览器,因此只需要掌握 JavaScript 的 ECMA 语法即可,而不需要关心 DOM 和 BOM。
无论前端工程师,还是后端 Java 工程师,上手使用 Node.js 都非常简单。
Node.js 拥有完善的生态系统,在它的官方插件中有很多成熟的中间件,几乎涵盖一般中
小型项目开发所需的大部分功能。基于 Node.js 的老牌开发框架 Express 依然活跃,目前,其
周下载量保持在千万级别;阿里巴巴也推出了基于 Node.js 的开源 Web 框架 Egg,还推出了
基于 Node.js 的 alinode 性能平台,可以覆盖企业级项目的完整生命周期。笔者开发的多个
Node.js 项目充分验证了这些框架的高效和高并发特性。
总而言之,Node.js 的诞生使得 JavaScript 语言像 Java 等其他后端开发语言一样,可以完
成数据库操作和服务端逻辑处理等任务。Node.js 支持前后端开发的特性吸引了大量的开发人
员将其作为开发工具,尤其是很多前端开发工程师转向了全栈开发。可以说,能熟练使用
Node.js 是前端工程师应聘时的加分项。
本书结合完整的项目实战案例,全面介绍基于 Node.js 的主流开发框架,带领读者系统
地掌握 Node.js 全栈开发技术,从而具备开发企业级应用的能力。
本书特色
视频教学:重点、难点内容配备配套教学视频,帮助读者高效、直观地学习。
由浅入深:从 Node.js 的基本概念讲起,逐步深入介绍 Node.js 的主流框架并进行项
目实战演练,学习门槛很低,容易上手。
实例丰富:结合大量实例讲解知识点,并详细介绍 3 个基于 Node.js 的开发框架的
用法。
项目实战:详解基于 Node.js MySQL Vue 的微信商城项目开发的全过程,帮助读者
系统地掌握 Node.js 全栈开发技术,从而具备开发商业项目的能力。
经验总结:全面归纳和总结笔者多年积累的项目开发经验,让读者少走弯路。
Node.js 全栈开发:从入门到项目实战
本书内容
第 1 篇 Node.js 开发基础知识
本篇涵盖第 1~5 章,从 Node.js 的基本概念和安装配置讲起,然后详细介绍 Node.js 模
块化管理、JavaScript 基础知识、Node.js 常见的内置模块、Node.js 对数据库的操作等相关内
容。通过学习本篇内容,读者可以快速了解 Node.js 开发的基础知识。有一定 Node.js 开发基
础的读者可以略过本篇而直接进入后续篇章的学习。
第 2 篇 Node.js 开发主流框架
本篇涵盖第 6~8 章,详细介绍 3 个基于 Node.js 的框架的用法,包括 Express、Koa 和
Egg,重点演示其语法知识和操作细节,如路由的使用、中间件的编写和 RESTfull 接口编写
等。通过学习本篇内容,读者可以系统掌握基于 Node.js 的主流框架的相关知识。
第 3 篇 项目实战
本篇涵盖第 9~15 章,基于 Node.js MySQL Vue,开发一个完整的百果园微信商城项目,
演示完整的商业级全栈项目开发的全过程,并简单介绍 Node.js 程序、小程序和 Vue 程序性
能优化涉及的相关知识。通过学习本篇内容,读者可以掌握前面篇章介绍的相关技术,并系
统了解一个真实项目开发的全过程,从而提升商业项目的开发能力。
读者对象
Node.js 零基础入门人员;
前端开发工程师;
后端开发工程师;
软件开发与测试人员;
对 Node.js 感兴趣的人员;
高等院校的学生;
相关培训机构的学员。
配书资源获取方式
为了便于读者学习,本书提供以下配书资源:
配套教学视频;
实例源程序。
上述配书资源有两种获取方式:一是关注微信公众号“方大卓越”,然后回复数字“23”,
即可自动获取下载链接;二是在清华大学出版社网站(www.tup.com.cn)上搜索本书,然后
在本书页面上找到“资源下载”栏目,单击“网络资源”按钮进行下载。
·II· 前言
致谢
本书的诞生离不开很多人的帮助和鼓励。首先,非常感谢家人的支持,本书的编写和案
例调试占用了笔者大量的业余时间,是家人的默默支持才使得笔者顺利完成编写任务;其次,
感谢罗雨露老师,她在本书的出版过程中提供了很多帮助;最后,感谢自己的努力付出,希
望本书能够帮助更多的人。
技术支持
虽然笔者对本书所述内容都尽量核对,并多次进行文字校对,但因时间所限,可能还存
在疏漏和不足之处,恳请广大读者批评与指正。读者在阅读本书时若有疑问,可以发送电子
邮件反馈,邮箱地址为 bookservice2008@163.com。
潘成均
2024 年 5 月
·III·