目录
目 录
第1章 Node.js和TypeScript基础 1
1.1 Node.js开发概述 1
1.1.1 为什么要学习Node.js 2
1.1.2 什么是Node.js 2
1.1.3 Node.js的特点 3
1.1.4 var、let和const的区别 4
1.1.5 开发工具 5
1.2 Node.js运行环境搭建 5
1.2.1 Node.js运行环境安装 5
1.2.2 Node.js环境安装失败的解决办法 7
1.2.3 代码有无分号的问题 7
1.3 Node.js快速入门 8
1.3.1 Node.js的组成 8
1.3.2 Node.js基础语法 8
1.3.3 Node.js全局对象global 8
1.4 nvm的安装与使用 9
1.5 Visual Studio Code的使用 10
1.5.1 忽略node_module目录 10
1.5.2 安装Visual Studio Code插件 11
1.5.3 打开并运行项目 13
1.5.4 Visual Studio Code配置 15
1.5.5 搜索 16
第2章 模块加载及第三方包 17
2.1 Node.js模块化开发 17
2.1.1 JavaScript开发弊端 17
2.1.2 模块化 18
2.1.3 Node.js中模块化开发规范 19
2.1.4 exports和module.exports的区别 21
2.1.5 require优先从缓存加载 22
2.2 系统模块 22
2.2.1 什么是系统模块 22
2.2.2 系统模块fs文件操作 23
2.2.3 系统模块path路径操作 25
2.2.4 相对路径和绝对路径 25
2.3 第三方模块 25
2.3.1 什么是第三方模块 25
2.3.2 获取第三方模块 26
2.3.3 第三方模块nrm 29
2.3.4 第三方模块nodemon 29
2.3.5 第三方模块gulp 30
2.3.6 npx 37
2.4 package.json文件 38
2.4.1 node_modules目录的问题 38
2.4.2 package.json文件的作用 38
2.4.3 package.json文件中各个选项的含义 39
2.4.4 package-lock.json文件的作用 40
2.4.5 yarn.lock的作用 41
2.5 Node.js中模块的加载机制 42
2.5.1 模块查找规则:当模块拥有路径但没有后缀时 42
2.5.2 模块查找规则:当模块没有路径且没有后缀时 42
第3章 HTTP及Node异步编程 44
3.1 C/S、B/S软件体系结构分析 44
3.2 服务器端基础概念 45
3.2.1 网站服务器 46
3.2.2 IP地址 46
3.2.3 域名 48
3.2.4 端口 48
3.2.5 URL 49
3.2.6 客户端和服务器端 49
3.3 创建Web服务器 49
3.4 HTTP 51
3.4.1 HTTP的概念 51
3.4.2 报文 51
3.4.3 请求报文 52
3.4.4 响应报文 57
3.5 HTTP请求与响应处理 58
3.5.1 请求参数 59
3.5.2 路由 61
3.5.3 静态资源 62
3.5.4 动态资源 63
3.5.5 客户端请求方式 64
3.6 Node.js异步编程 65
3.6.1 同步API和异步API 65
3.6.2 回调函数 67
3.6.3 Node.js中的异步API 68
3.6.4 Promise 69
3.6.5 async和await 71
第4章 MongoDB数据库 74
4.1 数据库概述 74
4.1.1 数据库简介 74
4.1.2 MongoDB数据库相关概念 75
4.2 MongoDB数据库环境搭建 77
4.2.1 MongoDB数据库下载与安装 77
4.2.2 启动MongoDB 80
4.3 MongoDB操作 80
4.3.1 MongoDB的Shell操作 80
4.3.2 MongoDB可视化软件 85
4.3.3 MongoDB导入和导出数据 87
4.4 MongoDB索引 88
4.4.1 创建简单索引 88
4.4.2 唯一索引 90
4.4.3 删除重复值 90
4.4.4 hint 90
4.4.5 explain 91
4.4.6 索引管理 92
4.5 MongoDB备份与恢复 93
4.5.1 MongoDB数据库备份 93
4.5.2 MongoDB数据库恢复 94
4.6 Mongoose数据库连接 95
4.7 Mongoose增、删、改、查操作 96
4.7.1 创建数据库 96
4.7.2 创建集合 97
4.7.3 创建文档 98
4.7.4 查询文档 99
4.7.5 删除文档 103
4.7.6 更新文档 104
4.7.7 Mongoose验证 104
4.7.8 集合关联 106
第5章 art-template模板引擎 108
5.1 模板引擎的基础概念 108
5.1.1 模板引擎 108
5.1.2 art-template简介 110
5.2 模板引擎语法 112
5.3 案例—用户管理 116
5.3.1 案例介绍 116
5.3.2 案例操作 117
第6章 Express框架 127
6.1 Express框架简介 127
6.2 中间件 128
6.2.1 什么是中间件 128
6.2.2 app.use中间件用法 129
6.2.3 中间件应用 130
6.2.4 错误处理中间件 131
6.3 Express请求处理 133
6.3.1 构建路由 133
6.3.2 构建模块化路由 134
6.3.3 GET参数的获取 135
6.3.4 POST参数的获取 135
6.3.5 Express路由参数 136
6.3.6 静态资源处理 137
6.4 express-art-template模板引擎 137
6.5 express-session 138
第7章 TypeScript编程 141
7.1 TypeScript基础 141
7.1.1 TypeScript简介 141
7.1.2 TypeScript的特点 142
7.1.3 安装TypeScript 143
7.1.4 JavaScript中的变量和类型限制 143
7.1.5 编写TypeScript程序 144
7.1.6 手动编译代码 145
7.1.7 Visual Studio Code自动编译 146
7.1.8 类型注解 147
7.1.9 使用vite快速创建TypeScript开发环境 147
7.2 基础类型 148
7.2.1 布尔类型 149
7.2.2 数字 149
7.2.3 字符串 149
7.2.4 undefined和null 150
7.2.5 数组 150
7.2.6 元组 150
7.2.7 枚举 151
7.2.8 any 151
7.2.9 void 152
7.2.10 never和symbol 152
7.2.11 object 153
7.2.12 联合类型 153
7.2.13 类型断言 154
7.2.14 类型推断 154
7.3 接口 155
7.3.1 接口初探 155
7.3.2 可选属性 156
7.3.3 只读属性 156
7.3.4 函数类型 157
7.3.5 类类型 157
7.4 类 158
7.4.1 基本示例 158
7.4.2 继承 159
7.4.3 公共、私有与受保护的访问修饰符 161
7.4.4 readonly修饰符和参数属性 162
7.4.5 存取器 163
7.4.6 静态属性 164
7.4.7 抽象类 164
7.5 函数 164
7.5.1 基本示例 165
7.5.2 函数类型 165
7.5.3 可选参数和默认参数 166
7.5.4 剩余参数 166
7.5.5 函数重载 166
7.6 泛型 167
7.6.1 引入泛型 167
7.6.2 多个泛型参数的函数 168
7.6.3 泛型接口 168
7.6.4 泛型类 169
7.6.5 泛型约束 170
7.7 声明文件和内置对象 170
7.7.1 声明文件 170
7.7.2 内置对象 171
第8章 文章管理系统实战 173
8.1 项目环境搭建 173
8.1.1 项目介绍 173
8.1.2 项目框架搭建 174
8.2 项目功能实现 181
8.2.1 登录注册 181
8.2.2 文章管理 194
8.2.3 用户管理 206
8.2.4 网站首页 210
8.2.5 文章评论 211
8.2.6 访问权限控制 213
8.3 项目源代码和运行 213
第9章 后台管理系统实战 215
9.1 项目介绍 215
9.2 项目搭建 218
9.3 后端项目搭建 219
9.3.1 搭建Node.js Web服务器项目 219
9.3.2 数据库初始化 228
9.3.3 启动Web服务器 228
9.3.4 接口测试 229
9.4 前端项目搭建 229
9.4.1 基础目录结构构建 229
9.4.2 配置Pinia 233
9.4.3 准备路由环境 235
9.4.4 封装接口请求 235
9.4.5 搭建主界面 238
9.4.6 配置路由 244
9.4.7 构建系统后台首页 247
9.4.8 用户列表 249
9.4.9 新增/编辑用户 254
9.4.10 配置代理 258
9.5 项目运行 259