《Node.js+Vue.js+MangoDB全棧開發實戰》
圖書購買地址:
京東:《Node.js+Vue.js+MangoDB全棧開發實戰》
噹噹:《Node.js+Vue.js+MangoDB全棧開發實戰》
天貓:《Node.js+Vue.js+MangoDB全棧開發實戰》
隨書源碼下載地址:
鏈接:https://pan.baidu.com/s/1DQYgPZLmtJCIuDXs8gub_w?pwd=1127
提取碼:1127
課件下載地址:
本書提供PPT課件,請聯繫作者或者出版社!
隨書目錄
目 錄
第1章 Node.js和TypeScript基礎·································································· 1
1.1 Node.js開發概述······································································································· 1
1.1.1 爲什麼要學習Node.js························································································ 1
1.1.2 什麼是Node.js································································································· 2
1.1.3 Node.js特點···································································································· 3
1.1.4 var、let和const的區別······················································································ 3
1.1.5 開發工具········································································································ 4
1.2 Node運行環境搭建···································································································· 5
1.2.1 Node.js運行環境安裝························································································ 5
1.2.2 Node環境安裝失敗解決辦法··············································································· 6
1.2.3 代碼有無分號的問題························································································· 6
1.3 Node.js快速入門······································································································· 7
1.3.1 Node.js的組成································································································· 7
1.3.2 Node.js基礎語法······························································································ 7
1.3.3 Node.js全局對象global······················································································ 7
1.4 nvm簡介、安裝、使用······························································································· 8
1.5 VS Code的使用········································································································· 9
1.5.1 忽略node_module目錄····················································································· 10
1.5.2 安裝VS Code插件·························································································· 10
1.5.3 打開並運行項目······························································································ 12
1.5.4 VS Code配置································································································· 14
1.5.5 搜索············································································································· 15
第2章 模塊加載及第三方包········································································· 17
2.1 Node.js模塊化開發··································································································· 17
2.1.1 JavaScript開發弊端·························································································· 17
2.1.2 模塊化·········································································································· 18
2.1.3 Node.js中模塊化開發規範················································································· 18
2.1.4 exports和module.exports的區別········································································· 20
2.1.5 require優先從緩存加載····················································································· 21
2.2 系統模塊················································································································ 22
2.2.1 什麼是系統模塊······························································································ 22
2.2.2 系統模塊fs文件操作······················································································· 22
2.2.3 系統模塊path路徑操作···················································································· 24
2.2.4 相對路徑VS絕對路徑····················································································· 24
2.3 第三方模塊············································································································· 25
2.3.1 什麼是第三方模塊··························································································· 25
2.3.2 獲取第三方模塊······························································································ 25
2.3.3 npm············································································································· 25
2.3.4 yarn············································································································· 26
2.3.5 yarn和npm的區別·························································································· 27
2.3.6 第三方模塊nrm······························································································ 28
2.3.7 第三方模塊nodemon························································································ 29
2.3.8 第三方模塊 gulp····························································································· 29
2.3.9 npx·············································································································· 36
2.4 package.json文件······································································································ 37
2.4.1 node_modules目錄的問題·················································································· 37
2.4.2 package.json文件的作用···················································································· 38
2.4.3 項目依賴和開發依賴························································································ 38
2.4.4 package.json文件各個選項含義··········································································· 38
2.4.5 package-lock.json文件的作用·············································································· 40
2.4.6 yarn.lock的作用······························································································ 40
2.5 Node.js中模塊的加載機制·························································································· 41
2.5.1 模塊查找規則:當模塊擁有路徑但沒有後綴時······················································· 41
2.5.2 模塊查找規則:當模塊沒有路徑且沒有後綴時······················································· 41
第3章 HTTP及Node異步編程···································································· 44
3.1 C/S、B/S軟件體系結構分析······················································································· 44
3.2 服務器端基礎概念···································································································· 45
3.2.1 網站的組成···································································································· 45
3.2.2 網站服務器···································································································· 46
3.2.3 IP地址········································································································· 46
3.2.4 域名············································································································· 47
3.2.5 端口············································································································· 48
3.2.6 URL············································································································· 49
3.2.7 客戶端和服務器端··························································································· 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 請求參數······································································································· 58
3.5.2 GET請求參數································································································ 58
3.5.3 POST請求參數······························································································ 59
3.5.4 路由············································································································· 60
3.5.5 靜態資源······································································································· 61
3.5.6 動態資源······································································································· 62
3.5.7 客戶端請求方式······························································································ 63
3.6 Node.js異步編程······································································································ 64
3.6.1 同步API,異步API························································································ 64
3.6.2 同步API,異步API的區別·············································································· 64
3.6.3 回調函數······································································································· 66
3.6.4 Node.js中的異步API······················································································· 66
3.6.5 Promise········································································································· 68
3.6.6 異步函數async和await···················································································· 70
第4章 MongoDB數據庫············································································ 72
4.1 數據庫概述············································································································· 72
4.1.1 爲什麼要使用數據庫························································································ 72
4.1.2 什麼是數據庫································································································· 72
4.1.3 MongoDB數據庫相關概念················································································ 73
4.2 MongoDB數據庫環境搭建························································································· 75
4.2.1 MongoDB數據庫下載安裝················································································ 75
4.2.2 啓動MongoDB······························································································· 78
4.3 MongoDB操作········································································································ 78
4.3.1 MongoDB的Shell操作···················································································· 78
4.3.2 MongoDB可視化軟件······················································································ 83
4.3.3 MongoDB導入導出數據··················································································· 85
4.4 MongoDB索引介紹及數據庫命令操作·········································································· 86
4.4.1 創建簡單索引································································································· 86
4.4.2 唯一索引······································································································· 88
4.4.3 刪除重複值···································································································· 88
4.4.4 Hint············································································································· 88
4.4.5 Expain·········································································································· 88
4.4.6 索引管理······································································································· 90
4.5 MongoDB備份與恢復······························································································· 91
4.5.1 MongoDB數據庫備份······················································································ 91
4.5.2 MongoDB數據庫恢復······················································································ 91
4.6 Mongoose數據庫連接······························································································· 93
4.7 Mongoose增刪改查操作···························································································· 93
4.7.1 創建數據庫···································································································· 94
4.7.2 創建集合······································································································· 95
4.7.3 創建文檔······································································································· 95
4.7.4 查詢文檔······································································································· 96
4.7.5 刪除文檔····································································································· 101
4.7.6 更新文檔····································································································· 101
4.7.7 mongoose驗證······························································································ 102
4.7.8 集合關聯····································································································· 103
第5章 art-template模板引擎······································································ 106
5.1 模板引擎的基礎概念······························································································· 106
5.1.1 模板引擎····································································································· 106
5.1.2 art-template簡介····························································································· 107
5.2 模板引擎語法········································································································ 110
5.2.1 輸出··········································································································· 110
5.2.2 原文輸出····································································································· 110
5.2.3 條件判斷····································································································· 110
5.2.4 循環··········································································································· 110
5.2.5 子模板········································································································ 111
5.2.6 模板繼承····································································································· 111
5.2.7 模板配置····································································································· 112
5.3 案例——用戶管理·································································································· 113
5.3.1 案例介紹····································································································· 113
5.3.2 操作步驟····································································································· 115
第6章 Express框架················································································ 125
6.1 Express框架簡介···································································································· 125
6.1.1 Express框架是什麼························································································ 125
6.1.2 Express框架特性··························································································· 125
6.2 中間件················································································································· 126
6.2.1 什麼是中間件······························································································· 126
6.2.2 app.use中間件用法························································································ 127
6.2.3 中間件應用·································································································· 128
6.2.4 錯誤處理中間件···························································································· 129
6.2.5 捕獲異常····································································································· 130
6.3 Express請求處理···································································································· 131
6.3.1 構建路由····································································································· 131
6.3.2 構建模塊化路由···························································································· 132
6.3.3 GET參數的獲取···························································································· 132
6.3.4 POST參數的獲取·························································································· 133
6.3.5 Express路由參數··························································································· 134
6.3.6 靜態資源處理······························································································· 135
6.4 express-art-template模板引擎······················································································ 135
6.5 express-session········································································································ 136
6.5.1 Session簡單介紹··························································································· 136
6.5.2 express-session的使用····················································································· 136
6.5.3 express-session 的常用參數·············································································· 137
第7章 TypeScript介紹············································································ 138
7.1 TypeScript基礎······································································································· 138
7.1.1 TypeScript簡介····························································································· 138
7.1.2 TypeScript的特點·························································································· 139
7.1.3 安裝TypeScript····························································································· 139
7.1.4 ts和js的區別······························································································· 140
7.1.5 編寫TS程序································································································ 140
7.1.6 手動編譯代碼······························································································· 141
7.1.7 VS Code自動編譯························································································· 142
7.1.8 類型註解····································································································· 143
7.1.9 vite快速創建ts開發環境················································································· 144
7.2 基礎類型·············································································································· 145
7.2.1 布爾值········································································································ 145
7.2.2 數字··········································································································· 146
7.2.3 字符串········································································································ 146
7.2.4 undefined和null···························································································· 146
7.2.5 數組··········································································································· 147
7.2.6 元組Tuple···································································································· 147
7.2.7 枚舉··········································································································· 147
7.2.8 any············································································································· 148
7.2.9 void············································································································ 148
7.2.10 Never········································································································ 149
7.2.11 Object········································································································ 149
7.2.12 聯合類型···································································································· 149
7.2.13 類型斷言···································································································· 150
7.2.14 類型推斷···································································································· 150
7.3 接口···················································································································· 151
7.3.1 接口初探····································································································· 151
7.3.2 可選屬性?···································································································· 151
7.3.3 只讀屬性readonly·························································································· 152
7.3.4 函數類型····································································································· 152
7.3.5 類類型········································································································ 153
7.4 類······················································································································· 154
7.4.1 基本示例····································································································· 154
7.4.2 繼承··········································································································· 154
7.4.3 公共,私有與受保護的修飾符·········································································· 157
7.4.4 readonly 修飾符···························································································· 158
7.4.5 存取器········································································································ 158
7.4.6 靜態屬性····································································································· 159
7.4.7 抽象類········································································································ 160
7.5 函數···················································································································· 160
7.5.1 基本示例····································································································· 160
7.5.2 函數類型····································································································· 161
7.5.3 可選參數和默認參數······················································································ 161
7.5.4 剩餘參數····································································································· 161
7.5.5 函數重載····································································································· 162
7.6 泛型···················································································································· 162
7.6.1 泛型引入····································································································· 163
7.6.2 使用函數泛型······························································································· 163
7.6.3 多個泛型參數的函數······················································································ 163
7.6.4 泛型接口····································································································· 163
7.6.5 泛型類········································································································ 164
7.6.6 泛型約束····································································································· 165
7.7 聲明文件和內置對象······························································································· 165
7.7.1 聲明文件····································································································· 165
7.7.2 內置對象····································································································· 166
第8章 文章管理系統··············································································· 168
8.1 項目環境搭建········································································································ 168
8.1.1 項目介紹····································································································· 168
8.1.2 項目框架搭建······························································································· 169
8.2 項目功能實現········································································································ 176
8.2.1 登錄··········································································································· 176
8.2.2 文章管理····································································································· 191
8.2.3 用戶管理····································································································· 203
8.2.4 網站首頁文章展示························································································· 207
8.2.5 文章評論····································································································· 208
8.2.6 訪問權限控制······························································································· 210
8.3 項目源碼和運行····································································································· 211
第9章 後臺管理系統··············································································· 213
9.1 項目介紹·············································································································· 213
9.1.1 項目介紹····································································································· 213
9.1.2 技術選型····································································································· 215
9.2 項目搭建·············································································································· 216
9.3 後端項目搭建········································································································ 217
9.3.1 搭建node web服務器項目··············································································· 217
9.3.2 數據庫初始化······························································································· 226
9.3.3 啓動web服務器···························································································· 227
9.3.4 接口測試····································································································· 227
9.4 前端項目搭建········································································································ 228
9.4.1 基礎目錄結構構建························································································· 228
9.4.2 配置pinia····································································································· 232
9.4.3 準備路由環境······························································································· 234
9.4.4 封裝接口請求······························································································· 234
9.4.5 搭建主界面·································································································· 237
9.4.6 配置路由····································································································· 243
9.4.7 構建系統後臺首頁························································································· 246
9.4.8 用戶列表····································································································· 248
9.4.9 新增/編輯用戶······························································································ 253
9.4.10 配置代理···································································································· 258
9.5 項目運行·············································································································· 258