图书目录

第1篇  Node.js开发基础知识

第1章  Node.js概述 2

1.1  Node.js简介 2

1.1.1  Node.js是什么 2

1.1.2  Node.js能做什么 3

1.1.3  Node.js架构原理 6

1.1.4  Node.js的发展历程 7

1.2  Node.js的安装配置 8

1.2.1  在Windows中安装Node.js 8

1.2.2  在Linux中安装Node.js 10

1.3  编写第一个Node.js程序 11

1.3.1  创建Node.js应用 11

1.3.2  运行Node.js应用 12

1.4  开发工具及其调试 13

1.4.1  安装Visual Studio Code 13

1.4.2  调试Node.js程序 16

1.5  创建Web服务器案例 18

1.6  本章小结 19

第2章  Node.js模块化管理 20

2.1  JavaScript模块化 20

2.1.1  什么是模块化 20

2.1.2  模块化的发展史 22

2.1.3  CommonJS规范 25

2.1.4  ES 6模块化规范 27

2.2  Node.js模块分类 30

2.2.1  核心模块 30

2.2.2  自定义模块 31

2.2.3  第三方模块 32

2.3  NPM包管理器 33

2.3.1  NPM简介 33

2.3.2  使用NPM管理模块 34

2.3.3  使用YARN管理模块 37

2.4  本章小结 40

第3章  JavaScript基础知识 41

3.1  JavaScript语法基础 41

3.1.1  JavaScript简介 41

3.1.2  变量与数据类型 42

3.1.3  运算符 44

3.1.4  表达式及语句 48

3.2  程序控制结构 48

3.2.1  分支结构 48

3.2.2  循环结构 50

3.3  函数的定义与使用 53

3.3.1  函数的声明与调用 53

3.3.2  函数的参数 54

3.3.3  函数的返回值 56

3.3.4  函数的注释 56

3.4  常用的内置对象 57

3.4.1  数组Array 57

3.4.2  数学对象Math 63

3.4.3  日期对象Date 65

3.4.4  字符串String 66

3.5  ES 6+新增的语法 67

3.5.1  变量和常量 67

3.5.2  解构赋值 68

3.5.3  扩展运算符 69

3.5.4  字符串新增的方法 69

3.5.5  数组新增的方法 70

3.5.6  对象新增的方法 71

3.5.7  箭头函数 72

3.5.8  Set和Map 72

3.5.9  Class类及其继承 73

3.5.10  Promise和Async 74

3.6  本章小结 75

第4章  Node.js的内置模块 76

4.1  Node.js模块 76

4.1.1  module模块 76

4.1.2  global全局变量 77

4.1.3  Console控制台 78

4.1.4  Errors错误模块 80

4.2  Buffer缓冲区 83

4.2.1  缓冲区与TypeArray 83

4.2.2  Buffer类 84

4.3  child_process子进程 87

4.3.1  创建子进程 87

4.3.2  父进程和子进程间的通信 89

4.4  events事件触发器 90

4.4.1  事件循环 90

4.4.2  EventEmitter类 91

4.5  timmers定时器 95

4.5.1  Node.js中的定时器 95

4.5.2  调度定时器 95

4.6  path路径 96

4.7  fs文件系统 98

4.7.1  fs模块简介 98

4.7.2  文件的基本操作 101

4.8  NET网络 105

4.8.1  net模块简介 105

4.8.2  TCP服务器 106

4.9  dgram数据报 108

4.9.1  dgram模块简介 108

4.9.2  UDP服务器 108

4.10  超文本传输协议模块 110

4.10.1  HTTP模块简介 110

4.10.2  HTTP服务器 111

4.11  本章小结 113

第5章  数据库操作 114

5.1  Node.js操作MySQL 114

5.1.1  安装MySQL 114

5.1.2  MySQL的基本命令 119

5.1.3  在Node.js中使用MySQL 122

5.2  Node.js操作MongoDB 128

5.2.1  安装MongoDB 128

5.2.2  MongoDB的基本命令 133

5.2.3  在Node.js中操作MongoDB 138

5.3  Node.js操作Redis 142

5.3.1  安装Redis 142

5.3.2  Redis的基本命令 145

5.3.3  在Node.js中使用Reids 151

5.4  本章小结 153

第2篇  Node.js开发主流框架

第6章  Express框架 156

6.1  Express框架入门 156

6.1.1  Express简介 156

6.1.2  Express的基本用法 157

6.1.3  托管静态资源 161

6.2  Express路由 163

6.2.1  路由简介 163

6.2.2  路由的用法 165

6.3  Express中间件 166

6.3.1  中间件简介 166

6.3.2  中间件的分类 170

6.3.3  自定义中间件 175

6.4  使用Express编写接口 178

6.4.1  Web开发模式 178

6.4.2  编写RESTfull API 179

6.4.3  跨域问题 182

6.4.4  身份认证 191

6.5  常用的API 205

6.5.1  模块方法 205

6.5.2  Application对象 205

6.5.3  Request对象 206

6.5.4  Response对象 206

6.5.5  Router对象 206

6.6  本章小结 206

第7章  Koa框架 207

7.1  Koa简介 207

7.1.1  Koa框架的发展 207

7.1.2  创建Hello World程序 208

7.1.3  Koa与Express的区别 209

7.2  Context上下文对象 210

7.2.1  Context上下文 210

7.2.2  Request对象 211

7.2.3  Response对象 212

7.3  Koa路由 213

7.3.1  路由的基本用法 213

7.3.2  接收请求数据 214

7.3.3  路由重定向 218

7.4  Koa中间件 219

7.4.1  中间件的概念 219

7.4.2  静态资源托管 223

7.4.3  常用的中间件 225

7.4.4  异常处理 226

7.5  本章小结 230

第8章  Egg框架 231

8.1  Egg简介 231

8.1.1  Egg是什么 231

8.1.2  第一个Egg程序 233

8.2  Egg路由 236

8.2.1  定义路由 236

8.2.2  RESTfull风格的路由 237

8.2.3  获取参数 238

8.2.4  获取表单内容 240

8.2.5  路由重定向 241

8.3  Egg控制器 242

8.3.1  编写控制器 243

8.3.2  获取HTTP请求参数 245

8.3.3  调用Service层 247

8.3.4  发送HTTP响应 247

8.4  Egg的Service 248

8.4.1  Service的概念 248

8.4.2  使用Service 249

8.5  Egg中间件 250

8.5.1  编写中间件 251

8.5.2  使用中间件 252

8.6  Egg插件 254

8.6.1  插件简介 254

8.6.2  常用的插件 255

8.6.3  数据库插件 256

8.7  本章小结 259

第3篇  项目实战

第9章  百果园微信商城需求分析 262

9.1  需求分析 262

9.2  技术选型 264

9.3  环境准备 264

9.4  本章小结 266

第10章  百果园微信商城架构设计 267

10.1  系统架构 267

10.2  数据库设计 269

10.3  本章小结 274

第11章  百果园微信商城后端API服务 275

11.1  项目搭建 275

11.1.1  项目初始化 275

11.1.2  封装返回JSON 276

11.1.3  路由模块化配置 277

11.2  接口安全校验 278

11.2.1  Token校验 278

11.2.2  登录校验 281

11.2.3  接口授权 288

11.3  登录接口 290

11.3.1  数据库的初始化 290

11.3.2  用ORM实现查询 292

11.3.3  密码加密 295

11.3.4  日志封装 296

11.4  接口权限验证 298

11.4.1  拦截模块的方法 298

11.4.2  权限验证通过的处理 300

11.4.3  权限验证失败的处理 303

11.4.4  权限验证的实现 304

11.5  商品分类管理API 310

11.5.1  添加商品分类 310

11.5.2  获取分类列表 312

11.5.3  获取指定的分类 316

11.5.4  修改指定的分类 317

11.5.5  删除指定的分类 318

11.6  分类参数管理API 319

11.6.1  添加分类参数 319

11.6.2  获取分类参数列表 321

11.6.3  获取分类参数详情 322

11.6.4  修改分类参数 323

11.6.5  删除分类参数 324

11.7  商品管理API 325

11.7.1  上传图片 326

11.7.2  添加商品 327

11.7.3  获取商品列表 339

11.7.4  删除商品 341

11.7.5  修改商品 342

11.7.6  获取商品详情 343

11.8  小程序端API 344

11.8.1  获取最新商品列表 345

11.8.2  获取商品详情 346

11.8.3  获取分类列表 346

11.8.4  根据分类获取商品 347

11.9  本章小结 347

第12章  百果园微信商城Vue管理后台 348

12.1  Vue项目搭建 348

12.1.1  创建项目 348

12.1.2  搭建路由 349

12.1.3  使用Element-UI制作组件 353

12.2  登录页面及其功能的实现 353

12.2.1  安装并设置Axios 353

12.2.2  实现登录和退出功能 354

12.3  分类管理功能的实现 357

12.3.1  获取分类列表 357

12.3.2  添加分类 358

12.3.3  修改分类 360

12.3.4  删除分类 362

12.4  分类参数管理功能的实现 363

12.4.1  获取分类参数列表 363

12.4.2  添加分类参数 365

12.4.3  修改分类参数 366

12.4.4  删除分类参数 367

12.4.5  添加参数标签 368

12.4.6  删除参数标签 369

12.5  商品管理功能的实现 369

12.5.1  获取商品列表 369

12.5.2  搜索商品 371

12.5.3  添加商品 371

12.5.4  删除商品 377

12.5.5  修改商品 377

12.6  本章小结 382

第13章  百果园微信商城小程序 383

13.1  搭建项目 383

13.1.1  项目创建及配置 383

13.1.2  配置tabBar 384

13.1.3  制作静态页面 385

13.2  封装公共功能 392

13.2.1  封装公共变量 392

13.2.2  封装网络请求 392

13.3  首页 393

13.3.1  首页功能说明 393

13.3.2  封装业务逻辑 393

13.3.3  获取接口数据 394

13.3.4  渲染页面数据 395

13.4  列表页 396

13.4.1  传递分类参数 396

13.4.2  接口数据渲染 396

13.5  详情页 398

13.5.1  传递商品参数 398

13.5.2  封装业务逻辑 398

13.5.3  获取商品数据 399

13.5.4  渲染商品数据 399

13.6  本章小结 401

第14章  百果园微信商城项目部署与发布 402

14.1  Node.js接口部署 402

14.2  小程序发布 405

14.3  管理后台部署 408

14.4  本章小结 409

第15章  百果园微信商城性能优化初探 411

15.1  Node.js程序优化 411

15.2  小程序优化 412

15.3  Vue程序优化 414

15.4  本章小结 416