Koa 與 Node.js 開發實戰

Koa 與 Node.js 開發實戰

作者: iKcamp
出版社: 電子工業
出版在: 2018-12-01
ISBN-13: 9787121355134
ISBN-10: 7121355132
裝訂格式: 其他
總頁數: 340 頁





內容描述


Node.js 10已經進入LTS時代!其應用場景已經從腳手架、輔助前端開發(如SSR、PWA等)擴展到API中間層、代理層及專業的後端開發。Node.js在企業Web開發領域也日漸成熟,無論是在API中間層,還是在微服務中都得到了非常好的落地。本書將通過Web開發框架Koa2,引領你進入Node.js的主戰場!本書系統講解了在實戰項目中使用Koa框架開發Web應用的流程和步驟。第1章介紹Node.js的安裝、開發工具及調試。第2章和第3章介紹搭建Koa實戰項目的雛形。第4章詳細介紹HTTP基礎知識及其實


目錄大綱


第1篇基礎知識
第1章Node.js入門2 
1.1 Node.js介紹2 
1.1.1什麼是Node.js 3 
1.1.2 Node.js的歷史和發展過程4 
1.1.3 Node.js的特點和應用場景7 
1.1.4安裝Node.js 8 
1.1.5實戰演練:使用Node.js搭建一個HTTP Server 10 
1.2 NPM 11 
1.2.1 NPM介紹12 
1.2.2 NPM模塊結構13 
1.2.3使用NVM控制Node.js版本16 
1.2.4 Web代理工具NProxy 18 
1.2.5實戰演練:在npm.org上發布一個模塊20 
1.3 Visual Studio Code編輯器22 
1.3.1 Visual Studio Code的安裝及其功能22 
1.3.2使用Visual Studio Code調試Node.js 23 
1.4本章小結25 
第2章遇見Koa 26 
2.1 Koa介紹26 
2.1.1 Koa的前世今生26 
2.1.2 Koa的安裝及搭建(視頻演示) 29 
2.2 Context對象30 
2.2.1什麼是Context對象31 
2.2.2常用屬性和方法31 
2.3 Koa的中間件35
2.3.1中間件概念35 
2.3.2實戰演練:使用中間件獲取響應時間(視頻演示) 38 
2.3.3常用Koa中間件介紹39 
2.4本章小結43 
第3章路由44 
3.1路由介紹44 
3.1.1路由的概念45 
3.1.2實戰演練:使用Koa中的簡單路由自定義404頁面46 
3.2 koa-router路由中間件48 
3.2.1 koa-router的安裝和介紹48 
3.2.2 RESTful規範48 
3.2.3 koa- router用法(視頻演示) 50 
3.2.4通過koa-router實現接口的權限控制55 
3.3本章小結58 
第4章HTTP 59 
4.1 HTTP介紹59 
4.1.1 HTTP的誕生59 
4.1.2 URI和URL 62 
4.1.3常用的HTTP狀態碼63 
4.1.4常用的請求方法63 
4.1.5常用的HTTP首部字段64 
4.2 HTTP/2 65 
4.2.1採用二進制格式傳輸數據65 
4.2.2多路復用65 
4.2.3流的優先級66 
4.2.4首部壓縮66 
4.2.5服務端推送67
4.3 Node.js的querystring模塊67 
4.3.1 querystring模塊的使用67 
4.3.2 koa-router中的querystring(視頻演示) 68 
4.3.3實戰演練:電影搜索列表69 
4.4 koa-bodyparser中間件72 
4.4.1 koa-bodyparser介紹72 
4.4.2 koa-bodyparser的使用(視頻演示) 73 
4.4.3實戰演練:實現用戶註冊功能並進行數據解析74 
4.5本章小結77 
第2篇應用實戰
第5章構建Koa Web應用80 
5.1 MVC 80 
5.1.1 MVC的發展歷程81 
5.1.2 MVC三層架構81 
5.1.3在Koa中實現MVC(視頻演示) 83 
5.2模板引擎87 
5.2.1什麼是模板引擎88 
5.2.2常見的模板引擎有哪些88 
5.2.3 Nunjucks語法介紹91 
5.2.4 Nunjucks在Koa中的應用(視頻演示) 96 
5.3靜態資源97 
5.3.1靜態資源的類型98 
5.3.2 koa-static簡介99 
5.3.3 koa- static常用配置(視頻演示) 99 
5.3.4實戰演練:開發登錄驗證頁面(視頻演示) 100
5.4其他常用開發技巧103 
5.4.1簡易版koa-json插件開發(視頻演示) 103 
5.4.2使用koa-multer中間件實現文件上傳106 
5.5本章小結110 
第6章數據庫111 
6.1數據庫介紹111 
6.1.1什麼是數據庫111 
6.1.2常見的數據庫113 
6.2在Koa中應用MySQL數據庫114 
6.2.1下載安裝MySQL 114 
6.2.2 Sequelize介紹118 
6.2.3實戰演練:客戶信息數據展現122 
6.3在Koa中應用MongoDB數據庫126 
6.3.1下載安裝MongoDB 126 
6.3.2 Mongoose介紹128 
6.3.3實戰演練:課程表數據展現132 
6.4在Koa中應用Redis數據庫135 
6.4.1什麼是Redis 135 
6.4.2 Redis庫介紹138 
6.4.3實戰演練:持久化用戶Session狀態141 
6.5本章小結145 
第7章單元測試146 
7.1 Chai斷言庫147 
7.1.1 Chai的介紹和安裝147 
7.1.2 Chai的使用147 
7.2 Mocha框架149
7.2.1 Mocha的介紹和安裝150 
7.2.2 Mocha的使用150 
7.3 SuperTest測試RESTful API 154 
7.3.1 SuperTest的介紹和安裝154 
7.3.2 SuperTest的使用154 
7.4其他常用工具155 
7.4.1 Nock模擬服務器響應156 
7.4.2 Nyc測試覆蓋率157 
7.5本章小結159 
第8章優化與部署161 
8.1服務優化161 
8.1.1使用log4js記錄日誌(視頻演示) 162 
8.1.2自定義錯誤頁(視頻演示) 168 
8.1. 3異常捕獲處理173 
8.1.4實戰演練:優化Web開發項目結構(視頻演示) 176 
8.2部署179 
8.2.1 Node.js進程管理器PM2 179 
8.2.2應用容器引擎Docker 182 
8.2.3在線免費開源集成Travis CI 185 
8.2.4利用Nginx部署HTTPS 189 
8.3服務監控192 
8.3.1 Node.js服務性能指標及採集192 
8.3.2日誌分析系統ELK 196 
8.3.3 Keymetrics監控雲服務197 
8.4本章小結199
第3篇項目實戰:從零開始搭建微信小程序後台
第9章云相冊功能介紹和準備工作203 
9.1應用介紹204 
9.2小程序開發賬戶申請206 
9.3準備域名209 
9.3.1註冊域名209 
9.3.2實名認證211 
9.3.3域名備案212 
9.4準備雲服務器216 
9.5配置DNS解析218 
9.6本章小結221 
第10章云相冊服務開發222 
10.1小程序登錄222 
10.2掃碼登錄230 
10.3小程序接口236 
10.3.1建立數據模型236 
10.3.2定義相冊接口238 
10.3.3定義照片接口242 
10.4後台管理系統接口244 
10.4.1定義用戶列表接口244 
10.4.2定義權限管理接口246 
10.4.3定義獲取照片接口247 
10.4.4定義審核照片接口249 
10.5記錄日誌249 
10.6本章小結252 
第11章云相冊小程序開發254 
11.1項目介紹254 
11.2結合Redux實現小程序組件通信259 
11.3 “個人中心”頁面264
11.4 “新建相冊”頁面267 
11.4.1自定義組件用法介紹267 
11.4.2組件事件269 
11.4.3實現“新建相冊”組件270 
11.5 “相冊列表”頁面272 
11.5.1展示相冊列表273 
11.5.2進入指定相冊頁面274 
11.5.3調用“新建相冊”組件274 
11.6 “照片列表”頁面275 
11.6.1獲取照片列表數據276 
11.6.2數據按日期分組277 
11.6.3上傳照片到當前相冊278 
11.6.4單擊圖片顯示高清大圖279 
11.7小程序審核發布280 
11.8本章小結282 
第12章云相冊後台管理系統283 
12.1整體架構284 
12.1.1基本文件結構285 
12.1.2前端模板結構287 
12.1.3路由設計290 
12.2相冊列表及相關功能292 
12.2.1分類展示照片293 
12.2.2審核照片297 
12.2.3 HTTP通信301 
12.2.4分頁控件302 
12.3用戶列表及相關功能304 
12.4登錄與鑑權309 
12.4.1登錄310
12.4.2鑑權中間件315 
12.5額外展開:SVG動畫效果及其他317 
12.6本章小結318 
第13章云相冊服務器部署319 
13.1部署數據庫321 
13.1.1存儲設置322 
13.1.2安全策略323 
13.2部署Nginx 325 
13.2.1安裝OpenResty 325 
13.2.2 Nginx配置326 
13.2.3插件擴展328 
13.3部署HTTPS 329 
13.3.1強制HTTPS跳轉329 
13.3.2添加WWW跳轉330 
13.4配置Koa服務331 
13.5本章小結332


作者介紹


iKcamp由熱愛原創和翻譯的小伙伴發起,成立於2016年7月。名字中的“iK”代表布蘭登·艾克(JavaScript之父)。追隨著JavaScript這門語言所秉持的精神,崇尚自由和開放的我們一起工作、分享、創作,並期待著遇見更多有趣的靈魂。iKcamp已出版的圖書《移動Web前端高效開發實戰:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js》曾廣受好評。陳達孚:碩士研究生畢業於香港中文大學,《前端開發者指南(2017)》譯者之一,在中國前端開發者大會、中生代技術大會等會議上發表過主題演講。金晶:非典型程序員一名,碩士研究生畢業於利茲大學,曾主導翻譯《前端開發者指南(2017)》,專注領域為前端動效(包括但不限於CSS 3、SVG、WebGL)。幹珺:滬江教育金融事業部前端負責人,具有多年一線互聯網公司前端開發經驗。張利濤:滬江教育資深前端開發工程師,iKcamp.com線上課程—— 微信小程序和Node.js主編。戴亮:美團點評資深前端架構師,在GMTC(全球大前端技術大會)上發表過主題演講。週遙:《HTML 5網頁開發實例詳解》作者之一,iKcamp團隊發起人之一。




相關書籍

Apache Spark 2.x Cookbook

作者 Rishi Yadav

2018-12-01

HTML5+CSS3+JavaScript從入門到精通

作者 王震 盛立 秦文友

2018-12-01

Beautiful JavaScript: Leading Programmers Explain How They Think (Paperback)

作者 Anton Kovalyov

2018-12-01