Node.js+Express+MongoDB+Vue.js全棧開發實戰
定 價:¥89
中 教 價:¥52.51 (5.90折)促銷
庫 存 數: 7
本書全面介紹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全棧開發初學者和進階讀者作為自學教程,也適合培訓學校作為培訓教材,還適合大、中專院校的相關專業作為教學參考書。
UI、md-editor-v3、basic-auth、JavaScript、TypeScript,知識面廣:無論是前端的Vue.js、樸素還是前端的MongoDB、Node.js、Express、Nginx,本書均有著墨。版本新穎:本書所涉及的技術版本均為目前最新的版本.案例豐富:全書共計有89個知識點實例和4個綜合實戰案例.全棧技能:熟習本書,可以掌握全棧開發技能.
寫作背景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月
柳偉衛,網名老衛、waylau,在IT公司擔任過項目經理、架構師、高級技術顧問等職位,擁有十多年開發經驗,具有豐富的軟件開發管理及系統架構經驗。主導過多個省、國家級大型分布式系統的設計與研發,參與過面向全球的供應鏈系統服務化改造。在實際工作中積累了大量的分布式系統、微服務架構以及性能調優經驗。業余時間創建了 waylau.com 網站,用于分享個人技術心得。喜歡開源,長期活躍于各大開源社區,是 CSDN、 開源中國、阿里云開發者、華為開發者等技術社區專家,已出版《Java核心編程》《輕量級Java EE企業應用開發實戰》等十幾部專業圖書。
第1章 Vue.js Node.js全棧開發概述 11.1 Vue.js Node.js全棧開發核心技術棧的組成 11.1.1 MongoDB 11.1.2 Express 21.1.3 Vue.js 21.1.4 Node.js 21.2 Vue.js Node.js全棧開發周邊技術棧的組成 21.2.1 Naive UI 21.2.2 md-editor-v3 31.2.3 Nginx 31.2.4 basic-auth 31.3 Vue.js Node.js全棧開發的優勢 31.4 開發工具的選擇 61.5 小結 61.6 練習題 6第2章 Node.js基礎 72.1 初識Node.js 72.1.1 Node.js簡介 72.1.2 為什么叫Node.js 82.2 Node.js的特點 82.2.1 異步I/O 82.2.2 事件驅動 92.2.3 單線程 102.2.4 可用性和擴展性 102.2.5 跨平臺 112.3 安裝Node.js 112.3.1 安裝Node.js和npm 112.3.2 Node.js與npm的關系 122.3.3 安裝npm鏡像 122.4 第一個Node.js應用 122.4.1 實例1:創建Node.js應用 122.4.2 實例2:運行Node.js應用 122.5 小結 132.6 練習題 13第3章 Node.js模塊大型項目管理之道 143.1 理解模塊化機制 143.1.1 理解CommonJS規范 143.1.2 理解ES6模塊 163.1.3 CommonJS和ES6模塊的異同點 173.1.4 Node.js的模塊實現 183.2 使用npm管理模塊 193.2.1 使用npm命令安裝模塊 193.2.2 全局安裝與本地安裝 203.2.3 查看安裝信息 203.2.4 卸載模塊 213.2.5 更新模塊 213.2.6 搜索模塊 213.2.7 創建模塊 213.3 Node.js核心模塊 213.4 小結 223.5 練習題 22第4章 Node.js測試 234.1 嚴格模式和遺留模式 234.2 實例3:斷言的使用 244.3 了解AssertionError 254.4 實例4:使用deepStrictEqual 264.5 小結 284.6 練習題 28第5章 Node.js緩沖區高性能IO處理的秘訣 295.1 了解Buffer 295.1.1 了解TypedArray 295.1.2 Buffer類 305.2 創建緩沖區 315.2.1 初始化緩沖區的API 315.2.2 實例5:理解數據的安全性 325.2.3 啟用零填充 335.2.4 實例6:指定字符編碼 335.3 實例7:切分緩沖區 345.4 實例8:連接緩沖區 355.5 實例9:比較緩沖區 365.6 緩沖區編解碼 365.6.1 編碼器和解碼器 365.6.2 實例10:緩沖區解碼 375.6.3 實例11:緩沖區編碼 385.7 小結 395.8 練習題 39第6章 Node.js事件處理 406.1 理解事件和回調 406.1.1 事件循環 416.1.2 事件驅動 416.2 事件發射器 426.2.1 實例12:將參數和this傳給監聽器 426.2.2 實例13:異步與同步 436.2.3 實例14:僅處理事件一次 436.3 事件類型 446.3.1 事件類型的定義 446.3.2 內置的事件類型 446.3.3 實例15:error事件 446.4 事件的操作 476.4.1 實例16:設置最大監聽器 476.4.2 實例17:獲取已注冊的事件的名稱 476.4.3 實例18:獲取監聽器數組的副本 486.4.4 實例19:將事件監聽器添加到監聽器數組的開頭 486.4.5 實例20:移除監聽器 496.5 小結 506.6 練習題 50第7章 Node.js文件處理 517.1 了解fs模塊 517.1.1 同步與異步操作文件 517.1.2 文件描述符 537.2 處理文件路徑 537.2.1 字符串形式的路徑 547.2.2 Buffer形式的路徑 547.2.3 URL對象的路徑 557.3 打開文件 567.3.1 文件系統標志 567.3.2 實例21:打開文件的例子 577.4 讀取文件 587.4.1 實例22:用fs.read讀取文件 587.4.2 實例23:用fs.readdir讀取文件 597.4.3 實例24:用fs.readFile讀取文件 607.5 寫入文件 617.5.1 實例25:將Buffer寫入文件 617.5.2 實例26:將字符串寫入文件 627.5.3 實例27:將數據寫入文件 647.6 小結 647.7 練習題 65第8章 Node.js HTTP編程 668.1 創建HTTP服務器 668.1.1 實例28:用http.Server創建服務器 668.1.2 理解http.Server事件的用法 678.2 處理HTTP常用操作 698.3 請求對象和響應對象 698.3.1 理解http.ClientRequest類 698.3.2 理解http.ServerResponse類 738.4 REST概述 768.4.1 REST定義 768.4.2 REST設計原則 768.5 成熟度模型 778.5.1 第0級:使用HTTP作為傳輸方式 788.5.2 第1級:引入了資源的概念 798.5.3 第2級:根據語義使用HTTP動詞 808.5.4 第3級:使用HATEOAS 818.6 實例29:構建REST服務的例子 838.6.1 新增用戶 848.6.2 修改用戶 858.6.3 刪除用戶 858.6.4 響應請求 868.6.5 運行應用 878.7 小結 908.8 練習題 90第9章 Express基礎 919.1 安裝Express 919.1.1 初始化應用目錄 919.1.2 初始化應用結構 929.1.3 在應用中安裝Express 929.2 實例30:編寫Hello World應用 939.3 實例31:運行Hello World應用 939.4 小結 949.5 練習題 94第10章 Express路由頁面的導航員 9510.1 路由方法 9510.2 路由路徑 9610.2.1 實例32:基于字符串的路由路徑 9610.2.2 實例33:基于字符串模式的路由路徑 9710.2.3 實例34:基于正則表達式的路由路徑 9710.3 路由參數 9810.4 路由處理器 9810.4.1 實例35:單個回調函數 9810.4.2 實例36:多個回調函數 9810.4.3 實例37:一組回調函數 9910.4.4 實例38:獨立函數和函數數組的組合 9910.5 響應方法 9910.6 實例39:Express構建REST API 10010.7 測試Express的REST API 10210.7.1 測試創建用戶API 10210.7.2 測試刪除用戶API 10210.7.3 測試修改用戶API 10310.7.4 測試查詢用戶API 10410.8 小結 10410.9 練習題 104第11章 Express錯誤處理器 10511.1 捕獲錯誤 10511.2 默認錯誤處理器 10711.3 自定義錯誤處理器 10711.4 小結 10911.5 練習題 109第12章 MongoDB基礎 11012.1 MongoDB簡介 11012.2 安裝MongoDB 11212.3 啟動MongoDB服務 11212.4 連接到MongoDB服務器 11312.5 小結 11412.6 練習題 114第13章 MongoDB常用操作 11513.1 顯示已有的數據庫 11513.2 創建、使用數據庫 11513.3 插入文檔 11613.3.1 實例40:插入單個文檔 11613.3.2 實例41:插入多個文檔 11613.4 查詢文檔 11713.4.1 實例42:嵌套文檔查詢 11813.4.2 實例43:嵌套字段查詢 11813.4.3 實例44:使用查詢運算符 11813.4.4 實例45:多條件查詢 11913.5 修改文檔 11913.5.1 實例46:修改單個文檔 11913.5.2 實例47:修改多個文檔 12013.5.3 實例48:替換單個文檔 12013.6 刪除文檔 12113.6.1 實例49:刪除單個文檔 12113.6.2 實例50:刪除多個文檔 12213.7 小結 12213.8 練習題 122第14章 使用Node.js操作MongoDB 12314.1 安裝mongodb模塊 12314.2 實現訪問MongoDB 12414.3 運行應用 12514.4 小結 12514.5 練習題 125第15章 mongodb模塊的綜合應用 12615.1 實例51:建立連接 12615.2 實例52:插入文檔 12715.3 實例53:查找文檔 12815.4 修改文檔 13015.4.1 實例54:修改單個文檔 13015.4.2 實例55:修改多個文檔 13415.5 刪除文檔 13715.5.1 實例56:刪除單個文檔 13715.5.2 實例57:刪除多個文檔 14115.6 小結 14515.7 練習題 145第16章 Vue.js基礎 14616.1 Vue.js產生的背景 14616.2 Vue.js的下載安裝 14616.2.1 安裝Vue CLI 14716.2.2 安裝Vue Devtools 14716.3 Vue CLI的常用操作 14716.3.1 獲取幫助 14716.3.2 創建應用 14816.3.3 創建服務 14916.3.4 啟動應用 14916.3.5 編譯應用 15016.4 實例58:創建第一個Vue.js應用 15016.4.1 使用Vue CLI初始化應用 15016.4.2 運行Vue應用 15416.4.3 增加對TypeScript的支持 15516.5 探索Vue.js應用結構 15516.5.1 整體項目結構 15516.5.2 項目根目錄文件 15616.5.3 node_modules目錄 15616.5.4 public目錄 15716.5.5 src目錄 15816.6 小結 16116.7 練習題 161第17章 Vue.js應用實例 16217.1 創建應用實例 16217.1.1 第一個應用實例 16217.1.2 讓應用實例執行方法 16217.1.3 理解選項對象 16317.1.4 理解根組件 16317.1.5 理解MVVM模型 16417.2 data的property與methods 16417.2.1 理解data property 16517.2.2 理解data methods 16517.3 生命周期 16617.3.1 什么是生命周期鉤子 16617.3.2 Vue.js的生命周期 16717.3.3 實例59:生命周期鉤子的例子 16817.4 小結 17117.5 練習題 171第18章 Vue.js組件 17218.1 組件的基本概念 17218.1.1 實例60:一個Vue.js組件的示例 17218.1.2 什么是組件 17318.1.3 組件的復用 17418.1.4 Vue組件與Web組件的異同點 17518.2 組件交互方式 17518.2.1 實例61:通過prop向子組件傳遞數據 17518.2.2 實例62:監聽子組件事件 17618.2.3 實例63:兄弟組件之間的通信 17918.2.4 實例64:通過插槽分發內容 18118.3 讓組件可以動態加載 18318.3.1 實現組件動態加載的步驟 18318.3.2 實例65:動態組件的示例 18318.4 使用緩存組件keep-alive 18818.4.1 實例66:keep-alive的例子 18818.4.2 keep-alive配置詳解 18918.5 小結 19018.6 練習題 190第19章 Vue.js模板 19119.1 模板概述 19119.2 實例67:插值 19219.2.1 文本 19219.2.2 原生HTML代碼 19219.2.3 綁定HTML attribute 19319.2.4 JavaScript表達式 19319.3 實例68:在模板中使用指令 19419.3.1 參數 19519.3.2 理解指令中的動態參數 19519.3.3 理解指令中的修飾符 19619.4 實例69:在模板中使用指令的縮寫 19619.4.1 使用v-bind縮寫 19619.4.2 使用v-on縮寫 19719.5 使用模板的一些約定 19719.5.1 對動態參數值的約定 19719.5.2 對動態參數表達式的約定 19819.5.3 對訪問全局變量的約定 19819.6 小結 19819.7 練習題 198第20章 Vue.js計算屬性與監聽器 19920.1 通過實例理解計算屬性的必要性 19920.2 實例70:一個計算屬性的例子 20020.2.1 聲明計算屬性 20020.2.2 模擬數據更改 20120.3 計算屬性緩存與方法的關系 20220.4 為什么需要偵聽器 20220.4.1 理解偵聽器 20220.4.2 實例71:一個偵聽器的例子 20220.5 小結 20420.6 練習題 204第21章 Vue.js表達式 20521.1 條件表達式 20521.1.1 實例72:v-if的例子 20521.1.2 實例73:v-else的例子 20621.1.3 實例74:v-else-if的例子 20621.1.4 實例75:v-show的例子 20621.1.5 v-if與v-show的關系 20721.2 for循環表達式 20721.2.1 實例76:v-for遍歷數組的例子 20721.2.2 實例77:v-for遍歷數組設置索引的例子 20821.2.3 實例78:v-for遍歷對象property的例子 21021.2.4 實例79:數組過濾的例子 21121.2.5 實例80:使用值的范圍的例子 21221.3 v-for的不同使用場景 21321.3.1 實例81:在中使用v-for的例子 21321.3.2 實例82:v-for與v-if一同使用的例子 21421.3.3 實例83:在組件上使用v-for的例子 21521.4 小結 21621.5 練習題 216第22章 Vue.js事件 21722.1 什么是事件 21722.1.1 實例84:監聽事件的例子 21722.1.2 理解事件處理方法 21822.1.3 處理原始的DOM事件 21922.1.4 為什么需要在HTML代碼中監聽事件 22022.2 實例85:多事件處理器的例子 22022.3 事件修飾符 22122.3.1 什么是事件修飾符 22122.3.2 理解按鍵修飾符 22222.3.3 理解系統修飾鍵 22322.4 小結 22422.5 練習題 224第23章 Vue.js表單 22523.1 理解表單輸入綁定 22523.2 實例86:表單輸入綁定的基礎用法 22523.2.1 文本 22523.2.2 多行文本 22623.2.3 復選框 22723.2.4 單選框 22823.2.5 選擇框 22923.3 實例87:值綁定 23023.3.1 復選框 23023.3.2 單選框 23123.3.3 選擇框 23223.4 小結 23323.5 練習題 233第24章 Vue.js HTTP客戶端 23424.1 初識HttpClient 23424.2 認識網絡資源 23524.3 實例88:獲取API數據 23524.3.1 引入vue-axios 23524.3.2 獲取API數據 23524.3.3 運行應用 23624.4 小結 23624.5 練習題 236第25章 實戰:基于Vue.js和Node.js的互聯網應用 23725.1 應用概述 23725.1.1 新聞頭條的核心功能 23825.1.2 初始化數據庫 23825.2 模型設計 23825.2.1 用戶模型設計 23825.2.2 新聞模型設計 23925.3 接口設計 23925.4 權限管理 23925.5 小結 24025.6 練習題 240第26章 實戰:前端UI客戶端應用 24126.1 前端UI設計 24126.1.1 首頁UI設計 24126.1.2 新聞詳情頁UI設計 24226.2 實現UI原型 24226.2.1 初始化news-ui 24226.2.2 添加Naive UI 24326.2.3 創建組件 24426.2.4 實現新聞列表原型設計 24526.2.5 實現新聞詳情頁原型設計 24726.3 實現路由器 24926.3.1 理解路由的概念 24926.3.2 使用路由插件 24926.3.3 創建路由 24926.3.4 如何使用路由 25026.3.5 修改新聞列表組件 25126.3.6 新聞詳情組件增加返回按鈕事件處理 25226.3.7 運行應用 25226.4 小結 25326.5 練習題 253第27章 實戰:后端服務器應用 25427.1 初始化后臺應用 25427.1.1 初始化應用目錄 25427.1.2 初始化應用結構 25427.1.3 在應用中安裝Express 25527.1.4 編寫后臺Hello World應用 25527.1.5 運行后臺Hello World應用 25627.2 初步實現登錄認證 25627.2.1 創建后臺管理組件 25627.2.2 添加組件到路由 25627.2.3 注入HTTP客戶端 25727.2.4 客戶端訪問后臺接口 25727.2.5 后臺接口設置安全認證 25927.3 實現新聞編輯器 26127.3.1 集成md-editor-v3插件 26127.3.2 導入md-editor-v3組件及樣式 26127.3.3 編寫編輯器界面 26127.3.4 后臺創建新增新聞接口 26427.3.5 運行 26627.4 實現新聞列表展示 26627.4.1 后臺實現新聞列表查詢的接口 26627.4.2 實現客戶端訪問新聞列表REST接口 26727.4.3 運行應用 26827.5 實現新聞詳情展示 26927.5.1 在后服務器實現查詢新聞詳情的接口 26927.5.2 實現客戶端訪問新聞詳情REST接口 27027.5.3 運行應用 27227.6 實現認證信息存儲及讀取 27327.6.1 實現認證信息的存儲 27327.6.2 實現認證信息的讀取 27327.6.3 改造認證方法 27427.6.4 改造對外的接口 27427.7 小結 27627.8 練習題 276第28章 實戰:使用Nginx實現高可用 27728.1 Nginx概述與安裝 27728.1.1 Nginx介紹 27728.1.2 下載、安裝、運行Nginx 27828.1.3 常用命令 28128.2 部署前端應用 28128.2.1 編譯前端應用 28128.2.2 部署前端應用編譯文件 28228.2.3 配置Nginx 28228.3 實現負載均衡及高可用 28328.3.1 配置負載均衡 28428.3.2 負載均衡常用算法 28428.3.3 實現后臺服務的高可用 28628.3.4 運行 28728.4 小結 28728.5 練習題 287參考文獻 288