新書推薦:
《
诛吕:“诸吕之乱”的真相与吕太后时期的权力结构
》
售價:HK$
99.7
《
炙野(全2册)
》
售價:HK$
78.2
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
80.6
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
87.4
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
66.1
|
編輯推薦: |
UI、md-editor-v3、basic-auth、JavaScript、TypeScript,知识面广:无论是前端的Vue.js、朴素还是前端的MongoDB、Node.js、Express、Nginx,本书均有着墨。
版本新颖:本书所涉及的技术版本均为目前最新的版本.
案例丰富:全书共计有89个知识点实例和4个综合实战案例.
全栈技能:熟习本书,可以掌握全栈开发技能.
|
內容簡介: |
本书全面介绍Vue.js Node.js全栈开发所使用的新技术,包括MongoDB、Express、Vue.js 3、Node.js、Naive UI、md-editor-v3、Nginx、basic-auth、JavaScript、TypeScript等开源技术栈,知识点涉及数据存储、模块、测试、缓冲区、事件处理、文件处理、HTTP编程、组件、模板、指令、监听器、表达式、事件、表单、HTTP客户端等内容。本书内容丰富,案例新颖,学习难度由浅入深,层层推进,理论联系实际,具有较强的实操性。这些知识点既能满足当前企业级应用的开发需求,又可以**限度地减轻开发者的负担。本书所介绍的知识较为前瞻,辅以大量的案例,令读者知其然并知其所以然。通过本书的学习,可以令读者拓展视野,提升职场竞争能力。 本书适合Vue.js Node.js全栈开发初学者和进阶读者作为自学教程,也适合培训学校作为培训教材,还适合大、中专院校的相关专业作为教学参考书。
|
關於作者: |
柳伟卫,网名老卫、waylau,在IT公司担任过项目经理、架构师、高级技术顾问等职位,拥有十多年开发经验,具有丰富的软件开发管理及系统架构经验。主导过多个省、国家级大型分布式系统的设计与研发,参与过面向全球的供应链系统服务化改造。在实际工作中积累了大量的分布式系统、微服务架构以及性能调优经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢开源,长期活跃于各大开源社区,是 CSDN、 开源中国、阿里云开发者、华为开发者等技术社区专家,已出版《Java核心编程》《轻量级Java EE企业应用开发实战》等十几部专业图书。
|
目錄:
|
第1章 Vue.js Node.js全栈开发概述 1
1.1 Vue.js Node.js全栈开发核心技术栈的组成 1
1.1.1 MongoDB 1
1.1.2 Express 2
1.1.3 Vue.js 2
1.1.4 Node.js 2
1.2 Vue.js Node.js全栈开发周边技术栈的组成 2
1.2.1 Naive UI 2
1.2.2 md-editor-v3 3
1.2.3 Nginx 3
1.2.4 basic-auth 3
1.3 Vue.js Node.js全栈开发的优势 3
1.4 开发工具的选择 6
1.5 小结 6
1.6 练习题 6
第2章 Node.js基础 7
2.1 初识Node.js 7
2.1.1 Node.js简介 7
2.1.2 为什么叫Node.js 8
2.2 Node.js的特点 8
2.2.1 异步I/O 8
2.2.2 事件驱动 9
2.2.3 单线程 10
2.2.4 可用性和扩展性 10
2.2.5 跨平台 11
2.3 安装Node.js 11
2.3.1 安装Node.js和npm 11
2.3.2 Node.js与npm的关系 12
2.3.3 安装npm镜像 12
2.4 第一个Node.js应用 12
2.4.1 实例1:创建Node.js应用 12
2.4.2 实例2:运行Node.js应用 12
2.5 小结 13
2.6 练习题 13
第3章 Node.js模块——大型项目管理之道 14
3.1 理解模块化机制 14
3.1.1 理解CommonJS规范 14
3.1.2 理解ES6模块 16
3.1.3 CommonJS和ES6模块的异同点 17
3.1.4 Node.js的模块实现 18
3.2 使用npm管理模块 19
3.2.1 使用npm命令安装模块 19
3.2.2 全局安装与本地安装 20
3.2.3 查看安装信息 20
3.2.4 卸载模块 21
3.2.5 更新模块 21
3.2.6 搜索模块 21
3.2.7 创建模块 21
3.3 Node.js核心模块 21
3.4 小结 22
3.5 练习题 22
第4章 Node.js测试 23
4.1 严格模式和遗留模式 23
4.2 实例3:断言的使用 24
4.3 了解AssertionError 25
4.4 实例4:使用deepStrictEqual 26
4.5 小结 28
4.6 练习题 28
第5章 Node.js缓冲区—高性能IO处理的秘诀 29
5.1 了解Buffer 29
5.1.1 了解TypedArray 29
5.1.2 Buffer类 30
5.2 创建缓冲区 31
5.2.1 初始化缓冲区的API 31
5.2.2 实例5:理解数据的安全性 32
5.2.3 启用零填充 33
5.2.4 实例6:指定字符编码 33
5.3 实例7:切分缓冲区 34
5.4 实例8:连接缓冲区 35
5.5 实例9:比较缓冲区 36
5.6 缓冲区编解码 36
5.6.1 编码器和解码器 36
5.6.2 实例10:缓冲区解码 37
5.6.3 实例11:缓冲区编码 38
5.7 小结 39
5.8 练习题 39
第6章 Node.js事件处理 40
6.1 理解事件和回调 40
6.1.1 事件循环 41
6.1.2 事件驱动 41
6.2 事件发射器 42
6.2.1 实例12:将参数和this传给监听器 42
6.2.2 实例13:异步与同步 43
6.2.3 实例14:仅处理事件一次 43
6.3 事件类型 44
6.3.1 事件类型的定义 44
6.3.2 内置的事件类型 44
6.3.3 实例15:error事件 44
6.4 事件的操作 47
6.4.1 实例16:设置最大监听器 47
6.4.2 实例17:获取已注册的事件的名称 47
6.4.3 实例18:获取监听器数组的副本 48
6.4.4 实例19:将事件监听器添加到监听器数组的开头 48
6.4.5 实例20:移除监听器 49
6.5 小结 50
6.6 练习题 50
第7章 Node.js文件处理 51
7.1 了解fs模块 51
7.1.1 同步与异步操作文件 51
7.1.2 文件描述符 53
7.2 处理文件路径 53
7.2.1 字符串形式的路径 54
7.2.2 Buffer形式的路径 54
7.2.3 URL对象的路径 55
7.3 打开文件 56
7.3.1 文件系统标志 56
7.3.2 实例21:打开文件的例子 57
7.4 读取文件 58
7.4.1 实例22:用fs.read读取文件 58
7.4.2 实例23:用fs.readdir读取文件 59
7.4.3 实例24:用fs.readFile读取文件 60
7.5 写入文件 61
7.5.1 实例25:将Buffer写入文件 61
7.5.2 实例26:将字符串写入文件 62
7.5.3 实例27:将数据写入文件 64
7.6 小结 64
7.7 练习题 65
第8章 Node.js HTTP编程 66
8.1 创建HTTP服务器 66
8.1.1 实例28:用http.Server创建服务器 66
8.1.2 理解http.Server事件的用法 67
8.2 处理HTTP常用操作 69
8.3 请求对象和响应对象 69
8.3.1 理解http.ClientRequest类 69
8.3.2 理解http.ServerResponse类 73
8.4 REST概述 76
8.4.1 REST定义 76
8.4.2 REST设计原则 76
8.5 成熟度模型 77
8.5.1 第0级:使用HTTP作为传输方式 78
8.5.2 第1级:引入了资源的概念 79
8.5.3 第2级:根据语义使用HTTP动词 80
8.5.4 第3级:使用HATEOAS 81
8.6 实例29:构建REST服务的例子 83
8.6.1 新增用户 84
8.6.2 修改用户 85
8.6.3 删除用户 85
8.6.4 响应请求 86
8.6.5 运行应用 87
8.7 小结 90
8.8 练习题 90
第9章 Express基础 91
9.1 安装Express 91
9.1.1 初始化应用目录 91
9.1.2 初始化应用结构 92
9.1.3 在应用中安装Express 92
9.2 实例30:编写Hello World应用 93
9.3 实例31:运行Hello World应用 93
9.4 小结 94
9.5 练习题 94
第10章 Express路由——页面的导航员 95
10.1 路由方法 95
10.2 路由路径 96
10.2.1 实例32:基于字符串的路由路径 96
10.2.2 实例33:基于字符串模式的路由路径 97
10.2.3 实例34:基于正则表达式的路由路径 97
10.3 路由参数 98
10.4 路由处理器 98
10.4.1 实例35:单个回调函数 98
10.4.2 实例36:多个回调函数 98
10.4.3 实例37:一组回调函数 99
10.4.4 实例38:独立函数和函数数组的组合 99
10.5 响应方法 99
10.6 实例39:Express构建REST API 100
10.7 测试Express的REST API 102
10.7.1 测试创建用户API 102
10.7.2 测试删除用户API 102
10.7.3 测试修改用户API 103
10.7.4 测试查询用户API 104
10.8 小结 104
10.9 练习题 104
第11章 Express错误处理器 105
11.1 捕获错误 105
11.2 默认错误处理器 107
11.3 自定义错误处理器 107
11.4 小结 109
11.5 练习题 109
第12章 MongoDB基础 110
12.1 MongoDB简介 110
12.2 安装MongoDB 112
12.3 启动MongoDB服务 112
12.4 连接到MongoDB服务器 113
12.5 小结 114
12.6 练习题 114
第13章 MongoDB常用操作 115
13.1 显示已有的数据库 115
13.2 创建、使用数据库 115
13.3 插入文档 116
13.3.1 实例40:插入单个文档 116
13.3.2 实例41:插入多个文档 116
13.4 查询文档 117
13.4.1 实例42:嵌套文档查询 118
13.4.2 实例43:嵌套字段查询 118
13.4.3 实例44:使用查询运算符 118
13.4.4 实例45:多条件查询 119
13.5 修改文档 119
13.5.1 实例46:修改单个文档 119
13.5.2 实例47:修改多个文档 120
13.5.3 实例48:替换单个文档 120
13.6 删除文档 121
13.6.1 实例49:删除单个文档 121
13.6.2 实例50:删除多个文档 122
13.7 小结 122
13.8 练习题 122
第14章 使用Node.js操作MongoDB 123
14.1 安装mongodb模块 123
14.2 实现访问MongoDB 124
14.3 运行应用 125
14.4 小结 125
14.5 练习题 125
第15章 mongodb模块的综合应用 126
15.1 实例51:建立连接 126
15.2 实例52:插入文档 127
15.3 实例53:查找文档 128
15.4 修改文档 130
15.4.1 实例54:修改单个文档 130
15.4.2 实例55:修改多个文档 134
15.5 删除文档 137
15.5.1 实例56:删除单个文档 137
15.5.2 实例57:删除多个文档 141
15.6 小结 145
15.7 练习题 145
第16章 Vue.js基础 146
16.1 Vue.js产生的背景 146
16.2 Vue.js的下载安装 146
16.2.1 安装Vue CLI 147
16.2.2 安装Vue Devtools 147
16.3 Vue CLI的常用操作 147
16.3.1 获取帮助 147
16.3.2 创建应用 148
16.3.3 创建服务 149
16.3.4 启动应用 149
16.3.5 编译应用 150
16.4 实例58:创建第一个Vue.js应用 150
16.4.1 使用Vue CLI初始化应用 150
16.4.2 运行Vue应用 154
16.4.3 增加对TypeScript的支持 155
16.5 探索Vue.js应用结构 155
16.5.1 整体项目结构 155
16.5.2 项目根目录文件 156
16.5.3 node_modules目录 156
16.5.4 public目录 157
16.5.5 src目录 158
16.6 小结 161
16.7 练习题 161
第17章 Vue.js应用实例 162
17.1 创建应用实例 162
17.1.1 第一个应用实例 162
17.1.2 让应用实例执行方法 162
17.1.3 理解选项对象 163
17.1.4 理解根组件 163
17.1.5 理解MVVM模型 164
17.2 data的property与methods 164
17.2.1 理解data property 165
17.2.2 理解data methods 165
17.3 生命周期 166
17.3.1 什么是生命周期钩子 166
17.3.2 Vue.js的生命周期 167
17.3.3 实例59:生命周期钩子的例子 168
17.4 小结 171
17.5 练习题 171
第18章 Vue.js组件 172
18.1 组件的基本概念 172
18.1.1 实例60:一个Vue.js组件的示例 172
18.1.2 什么是组件 173
18.1.3 组件的复用 174
18.1.4 Vue组件与Web组件的异同点 175
18.2 组件交互方式 175
18.2.1 实例61:通过prop向子组件传递数据 175
18.2.2 实例62:监听子组件事件 176
18.2.3 实例63:兄弟组件之间的通信 179
18.2.4 实例64:通过插槽分发内容 181
18.3 让组件可以动态加载 183
18.3.1 实现组件动态加载的步骤 183
18.3.2 实例65:动态组件的示例 183
18.4 使用缓存组件keep-alive 188
18.4.1 实例66:keep-alive的例子 188
18.4.2 keep-alive配置详解 189
18.5 小结 190
18.6 练习题 190
第19章 Vue.js模板 191
19.1 模板概述 191
19.2 实例67:插值 192
19.2.1 文本 192
19.2.2 原生HTML代码 192
19.2.3 绑定HTML attribute 193
19.2.4 JavaScript表达式 193
19.3 实例68:在模板中使用指令 194
19.3.1 参数 195
19.3.2 理解指令中的动态参数 195
19.3.3 理解指令中的修饰符 196
19.4 实例69:在模板中使用指令的缩写 196
19.4.1 使用v-bind缩写 196
19.4.2 使用v-on缩写 197
19.5 使用模板的一些约定 197
19.5.1 对动态参数值的约定 197
19.5.2 对动态参数表达式的约定 198
19.5.3 对访问全局变量的约定 198
19.6 小结 198
19.7 练习题 198
第20章 Vue.js计算属性与监听器 199
20.1 通过实例理解“计算属性”的必要性 199
20.2 实例70:一个计算属性的例子 200
20.2.1 声明计算属性 200
20.2.2 模拟数据更改 201
20.3 计算属性缓存与方法的关系 202
20.4 为什么需要侦听器 202
20.4.1 理解侦听器 202
20.4.2 实例71:一个侦听器的例子 202
20.5 小结 204
20.6 练习题 204
第21章 Vue.js表达式 205
21.1 条件表达式 205
21.1.1 实例72:v-if的例子 205
21.1.2 实例73:v-else的例子 206
21.1.3 实例74:v-else-if的例子 206
21.1.4 实例75:v-show的例子 206
21.1.5 v-if与v-show的关系 207
21.2 for循环表达式 207
21.2.1 实例76:v-for遍历数组的例子 207
21.2.2 实例77:v-for遍历数组设置索引的例子 208
21.2.3 实例78:v-for遍历对象property的例子 210
21.2.4 实例79:数组过滤的例子 211
21.2.5 实例80:使用值的范围的例子 212
21.3 v-for的不同使用场景 213
21.3.1 实例81:在中使用v-for的例子 213
21.3.2 实例82:v-for与v-if一同使用的例子 214
21.3.3 实例83:在组件上使用v-for的例子 215
21.4 小结 216
21.5 练习题 216
第22章 Vue.js事件 217
22.1 什么是事件 217
22.1.1 实例84:监听事件的例子 217
22.1.2 理解事件处理方法 218
22.1.3 处理原始的DOM事件 219
22.1.4 为什么需要在HTML代码中监听事件 220
22.2 实例85:多事件处理器的例子 220
22.3 事件修饰符 221
22.3.1 什么是事件修饰符 221
22.3.2 理解按键修饰符 222
22.3.3 理解系统修饰键 223
22.4 小结 224
22.5 练习题 224
第23章 Vue.js表单 225
23.1 理解表单输入绑定 225
23.2 实例86:表单输入绑定的基础用法 225
23.2.1 文本 225
23.2.2 多行文本 226
23.2.3 复选框 227
23.2.4 单选框 228
23.2.5 选择框 229
23.3 实例87:值绑定 230
23.3.1 复选框 230
23.3.2 单选框 231
23.3.3 选择框 232
23.4 小结 233
23.5 练习题 233
第24章 Vue.js HTTP客户端 234
24.1 初识HttpClient 234
24.2 认识网络资源 235
24.3 实例88:获取API数据 235
24.3.1 引入vue-axios 235
24.3.2 获取API数据 235
24.3.3 运行应用 236
24.4 小结 236
24.5 练习题 236
第25章 实战:基于Vue.js和Node.js的互联网应用 237
25.1 应用概述 237
25.1.1 “新闻头条”的核心功能 238
25.1.2 初始化数据库 238
25.2 模型设计 238
25.2.1 用户模型设计 238
25.2.2 新闻模型设计 239
25.3 接口设计 239
25.4 权限管理 239
25.5 小结 240
25.6 练习题 240
第26章 实战:前端UI客户端应用 241
26.1 前端UI设计 241
26.1.1 首页UI设计 241
26.1.2 新闻详情页UI设计 242
26.2 实现UI原型 242
26.2.1 初始化news-ui 242
26.2.2 添加Naive UI 243
26.2.3 创建组件 244
26.2.4 实现新闻列表原型设计 245
26.2.5 实现新闻详情页原型设计 247
26.3 实现路由器 249
26.3.1 理解路由的概念 249
26.3.2 使用路由插件 249
26.3.3 创建路由 249
26.3.4 如何使用路由 250
26.3.5 修改新闻列表组件 251
26.3.6 新闻详情组件增加返回按钮事件处理 252
26.3.7 运行应用 252
26.4 小结 253
26.5 练习题 253
第27章 实战:后端服务器应用 254
27.1 初始化后台应用 254
27.1.1 初始化应用目录 254
27.1.2 初始化应用结构 254
27.1.3 在应用中安装Express 255
27.1.4 编写后台Hello World应用 255
27.1.5 运行后台Hello World应用 256
27.2 初步实现登录认证 256
27.2.1 创建后台管理组件 256
27.2.2 添加组件到路由 256
27.2.3 注入HTTP客户端 257
27.2.4 客户端访问后台接口 257
27.2.5 后台接口设置安全认证 259
27.3 实现新闻编辑器 261
27.3.1 集成md-editor-v3插件 261
27.3.2 导入md-editor-v3组件及样式 261
27.3.3 编写编辑器界面 261
27.3.4 后台创建新增新闻接口 264
27.3.5 运行 266
27.4 实现新闻列表展示 266
27.4.1 后台实现新闻列表查询的接口 266
27.4.2 实现客户端访问新闻列表REST接口 267
27.4.3 运行应用 268
27.5 实现新闻详情展示 269
27.5.1 在后服务器实现查询新闻详情的接口 269
27.5.2 实现客户端访问新闻详情REST接口 270
27.5.3 运行应用 272
27.6 实现认证信息存储及读取 273
27.6.1 实现认证信息的存储 273
27.6.2 实现认证信息的读取 273
27.6.3 改造认证方法 274
27.6.4 改造对外的接口 274
27.7 小结 276
27.8 练习题 276
第28章 实战:使用Nginx实现高可用 277
28.1 Nginx概述与安装 277
28.1.1 Nginx介绍 277
28.1.2 下载、安装、运行Nginx 278
28.1.3 常用命令 281
28.2 部署前端应用 281
28.2.1 编译前端应用 281
28.2.2 部署前端应用编译文件 282
28.2.3 配置Nginx 282
28.3 实现负载均衡及高可用 283
28.3.1 配置负载均衡 284
28.3.2 负载均衡常用算法 284
28.3.3 实现后台服务的高可用 286
28.3.4 运行 287
28.4 小结 287
28.5 练习题 287
参考文献 288
|
內容試閱:
|
写作背景
JavaScript是Web开发最为流行的编程语言,而Node.js的出现使得JavaScript可以在服务器端一展身手。结合Vue.js技术实现前端框架的组件化开发方式使得Vue.js Node.js全栈开发变得盛行。笔者撰写了包括《Vue.js 3企业级应用开发实战》《Node.js企业级应用开发实战》在内的有关Vue.js和Node.js的图书,但将Vue.js和Node.js进行整合尚属首次。
本书介绍了Vue.js Node.js全栈开发所使用的新技术,这些技术既能满足当前企业级应用的开发需求,又可以最大限度地减轻开发者的负担。通过本书的学习,可以令读者拓展视野,并提升职场竞争能力。本书主要面向计算机专业的学生、全栈开发爱好者及工程师。本书涉及的技术包括MongoDB、Express、Vue.js、Node.js、Naive UI、md-editor-v3、Nginx、basic-auth、JavaScript、TypeScript等,是市面上为数不多的介绍全栈技术开发的图书之一。
一书在手,肩挑全栈,事半功倍!
内容介绍
本书共28章,概要说明如下:
第1章为概述,介绍Vue.js Node.js全栈开发架构所涉及的核心技术栈及周边技术栈的组成。
第2~8章为Node.js的基础及进阶,介绍Node.js的基础及核心内容。
第9~11章为Express的基础及进阶,介绍Express的基础及核心内容。
第12~15章为MongoDB的基础及进阶,介绍MongoDB的基础及核心内容。
第16~24章为Vue.js的基础及进阶,介绍Vue.js的基础及核心内容。
第25~28章为实战,演示如何从0开始实现一个综合实战案例——新闻头条。
特 色
本书具备以下特色:
知识面广。无论是前端的Vue.js、Naive UI、md-editor-v3、basic-auth、JavaScript、TypeScript,还是后端的MongoDB、Node.js、Express、Nginx,本书均有涉及。
版本新颖。本书所涉及的技术版本均为目前新版本。
案例丰富。全书共计89个知识点实例和4个综合实战案例。
全栈开发。熟习本书,可以掌握全栈开发技能。
资源下载
本书提供的源代码和PPT课件,可以扫描以下二维码下载:
若下载有问题,请发送电子邮件至booksaga@126.com,邮件主题为“Node.js Express MongoDB
Vue.js全栈开发实战”。
本书所采用的技术及相关版本
技术的版本是非常重要的,因为不同版本之间存在兼容性问题,而且不同版本的软件所对应的功能也是不同的。本书所列出的技术在版本上相对较新,都是经过笔者大量测试的。这样读者在自行编写代码时,可以参考本书所列出的版本,从而避免版本兼容性所产生的问题。建议读者将相关开发环境设置得与本书一致,或者不低于本书所列的配置。详细的版本配置,可以参阅本书“附录”中的内容。
勘误和交流
本书如有勘误,会在以下网址发布:
https://github.com/waylau/full-stack-development-with-vuejs-and-nodejs/issues
由于笔者能力有限、时间仓促,书中难免出现疏漏之处,欢迎读者批评指正。
致 谢
感谢清华大学出版社的各位工作人员为本书的出版所做的努力。
感谢我的父母、妻子和两个女儿。由于撰写本书,我牺牲了很多陪伴家人的时间,谢谢他们对我的理解和支持。
感谢关心和支持我的朋友、读者、网友。
柳伟卫
2022年12月
|
|