騰訊Web前端工程師全面揭秘原生Node.js的開發(fā)實(shí)踐,不借助任何第三方框架,通過編寫原生代碼,講解Node.js應(yīng)用開發(fā)
深入詳解Node.js原生文檔,根據(jù)原生API實(shí)踐和大量應(yīng)用實(shí)例,詳細(xì)分析Node.js的開發(fā)過程,了解原生Node.js的API應(yīng)用
全面涵蓋Node.js基礎(chǔ)知識、模塊與NPM、Web應(yīng)用、UDP服務(wù)、異步編程思想、異常處理過程、操作數(shù)據(jù)庫的方法、框架開發(fā)與應(yīng)用、開發(fā)工具等
注重實(shí)踐,講解時(shí)穿插了430多個代碼小示例,提供了30多個編程實(shí)踐練習(xí)題及解答,還介紹了5個大型系統(tǒng)的開發(fā),并贈送8小時(shí)教學(xué)視頻(需下載)
黃丹華,騰訊公司W(wǎng)eb前端工程師。專注于PHP與Node.js的開發(fā)與應(yīng)用。較早時(shí)間就開始關(guān)注Node.js的發(fā)展,并系統(tǒng)地學(xué)習(xí)和研究了國內(nèi)外大量的Node.js學(xué)習(xí)資料。獨(dú)創(chuàng)Mywebl.0的Node.js框架,目前正在開發(fā)Myweb2.0的Node.js框架。自營china Node.js微信公眾賬號,通過公眾賬號給國內(nèi)外Node.js愛好者提供一個學(xué)習(xí)交流的平臺。個人技術(shù)博客中提供的Node.js入門、資源分享和Nde.js異常分析等優(yōu)秀文章,被眾多的Node.js愛好者所認(rèn)可。
第1章 Node.js基礎(chǔ)知識
1.1 概述
1.1.1 Node.js是什么
1.1.2 Node.js帶來了什么
1.2 Node.js配置開發(fā)
1.2.1 Windows配置
1.2.2 Linux配置
1.2.3 HelloWorld
1.2.4 常見問題
1.3 異步編程
1.3.1 同步調(diào)用和異步調(diào)用
1.3.2 回調(diào)和異步調(diào)用
1.3.3 獲取異步函數(shù)的執(zhí)行結(jié)果
1.4 本章實(shí)踐
1.5 本章小結(jié)
第2章 模塊和NPM
2.1 什么是模塊
2.1.1 模塊的概念
2.1.2 Node.js如何處理模塊
2.1.3 Node.js實(shí)現(xiàn)Web解析DNS
2.1.4 Node.js重構(gòu)DNS解析網(wǎng)站
2.1.5 exports和module.eXports
2.2 NPM簡介
2.2.1 NPM和配置
2.2.2 Express框架
2.2.3 jade模板
2.2.4 forever模塊
2.2.5 socket.io模塊
2.2.6 request模塊
2.2.7 Formidable模塊
2.2.8 NPM模塊開發(fā)指南
2.3 Node.js設(shè)計(jì)模式
2.3.1 模塊與類
2.3.2 Node.js中的繼承
2.3.3 單例模式
2.3.4 適配器模式
2.3.5 裝飾模式
2.3.6 工廠模式
2.4 本章實(shí)踐
2.5 本章小結(jié)
第3章 Node.js的Web應(yīng)用
3.1 HTTP服務(wù)器
3.1.1 簡單的HTTP服務(wù)器
3.1.2 路由處理
3.1.3 GET和POST
3.1.4 GET方法實(shí)例
3.1.5 POST方法實(shí)例
3.1.6 HTTP和HTTPS模塊介紹
3.2 Node.js靜態(tài)資源管理
3.2.1 為什么需要靜態(tài)資源管理
3.2.2 Node.js實(shí)現(xiàn)簡單靜態(tài)資源管理
3.2.3 靜態(tài)資源庫設(shè)計(jì)
3.2.4 靜態(tài)文件的緩存控制
3.3 文件處理
3.3.1 FileSystem模塊介紹
3.3.2 圖片和文件上傳
3.3.3 jade模板實(shí)現(xiàn)圖片上傳展示功能
3.3.4 上傳圖片存在的問題
3.3.5 文件讀寫
3.4 Cookie和Session
3.4.1 Cookie和Session
3.4.2 Session模塊實(shí)現(xiàn)
3.4.3 Session模塊的應(yīng)用
3.5 Crypto模塊加密
3.5.1 Crypto介紹
3.5.2 Web數(shù)據(jù)密碼的安全
3.5.3 簡單加密模塊設(shè)計(jì)
3.6 Node.js+INginx
3.6.1 Nginx概述
3.6.2 Nginx的配置安裝
3.6.3 如何構(gòu)建
3.7 文字直播實(shí)例
3.7.1 系統(tǒng)分析
3.7.2 重要模塊介紹
3.8 擴(kuò)展閱讀
3.9 本章實(shí)踐
3.10 本章小結(jié)
第4章 Node.js高級編程
4.1 構(gòu)建UDP服務(wù)器
4.1.1 UDP 模塊概述
4.1.2 UDP Server構(gòu)建
4.2 UDP服務(wù)器應(yīng)用
4.2.1 應(yīng)用分析介紹
4.2.2 UDP Server端(圖片處理服務(wù)器)實(shí)現(xiàn)
4.2.3 UDP Client端(Web Server)
4.2.4 Jade頁面實(shí)現(xiàn)
4.2.5 應(yīng)用體驗(yàn)
4.3 Node.js與PHP合作
4.3.1 UDP方式
4.3.2 腳本執(zhí)行
4.3.3 HTTP方式
4.3.4 三種方式的比較
4.4 本章實(shí)踐
4.5 本章小結(jié)
第5章 深入Node.js
5.1 Node.js的相關(guān)實(shí)現(xiàn)機(jī)制
5.2 Node.js原生擴(kuò)展
5.2.1 Node.js擴(kuò)展開發(fā)基礎(chǔ)V8
5.2.2 Node.js插件開發(fā)介紹
5.3 Node.js異步擴(kuò)展開發(fā)與應(yīng)用
5.4 本章實(shí)踐
5.5 本章小結(jié)
第6章 Node.js編碼習(xí)慣
6.1 Node.js規(guī)范
6.1.1 變量和函數(shù)命名規(guī)范
6.1.2 模塊編寫規(guī)范
6.1.3 注釋
6.2 Node.js異步編程規(guī)范
6.2.1 Node.js的異步實(shí)現(xiàn)
6.2.2 異步函數(shù)的調(diào)用
6.2.3 Node.js異步回調(diào)深度
6.2.4 解決異步編程帶來的麻煩
6.3 異常邏輯的處理
6.3.1 require模塊對象不存在異常
6.3.2 對象中不存在方法或者屬性時(shí)的異常
6.3.3 異步執(zhí)行的for循環(huán)異常
6.3.4 利用異常處理辦法優(yōu)化路由
6.3.5 異常情況匯總
6.4 本章實(shí)踐
6.5 本章小結(jié)
第7章 Node.js與數(shù)據(jù)庫
7.1 兩種數(shù)據(jù)庫介紹
7.1.1 MySQL介紹
7.1.2 MongoDB模塊介紹
7.2 Node.js與MySQL
7.2.1 MySQL安裝配置應(yīng)用
7.2.2 MySQL數(shù)據(jù)庫接口設(shè)計(jì)
7.2.3 數(shù)據(jù)庫連接
7.2.4 數(shù)據(jù)庫插入數(shù)據(jù)
7.2.5 查詢一條數(shù)據(jù)記錄
7.2.6 修改數(shù)據(jù)庫記錄
7.2.7 刪除數(shù)據(jù)庫記錄
7.2.8 數(shù)據(jù)條件查詢
7.3 Node.js與MongoDB
7.3.1 MongoDB的安裝以及工具介紹
7.3.2 MongOD的啟動運(yùn)行方法
7.3.3 MongoDB的啟動運(yùn)行
7.3.4 MongoDB數(shù)據(jù)庫接口設(shè)計(jì)
7.3.5 數(shù)據(jù)插入
7.3.6 數(shù)據(jù)修改
7.3.7 查詢一條數(shù)據(jù)
7.3.8 刪除數(shù)據(jù)
7.3.9 查詢數(shù)據(jù)
7.4 MySQL與MongoDB性能
7.4.1 測試工具及測試邏輯
7.4.2 MySQL性能測試代碼
7.4.3 MongoDB性能測試代碼
7.4.4 性能測試數(shù)據(jù)分析
7.5 本章實(shí)踐
7.6 本章小結(jié)
第8章 MyWeb框架介紹
8.1 MyWeb框架介紹
8.1.1 MyWeb框架涉及的應(yīng)用
8.1.2 MyWeb框架應(yīng)用模塊
8.2 MyWeb源碼架構(gòu)
8.2.1 框架MVC設(shè)計(jì)圖
8.2.2 框架文件結(jié)構(gòu)
8.2.3 擴(kuò)展閱讀之更快地了解新項(xiàng)目
8.3 框架源碼分析
8.3.1 框架入口文件模塊
8.3.2 路由處理模塊
8.3.3 Model層基類
8.3.4 Controller層基類
8.4 本章實(shí)踐
8.5 本章小結(jié)
第9章 框架應(yīng)用MyChat
9.1 編碼前的準(zhǔn)備
9.1.1 應(yīng)用分析
9.1.2 應(yīng)用模塊
9.1.3 功能模塊設(shè)計(jì)
9.2 系統(tǒng)的編碼開發(fā)
9.2.1 Model層
9.2.2 Controller層
9.2.3 View層
9.3 項(xiàng)目總結(jié)
9.3.1 forever啟動運(yùn)行項(xiàng)目
9.3.2 系統(tǒng)應(yīng)用體驗(yàn)
9.3.3 系統(tǒng)開發(fā)總結(jié)
9.4 擴(kuò)展閱讀之MyWeb 2.0的介紹
9.5 本章實(shí)踐
9.6 本章小結(jié)
第10章 Node.js實(shí)例應(yīng)用
10.1 實(shí)時(shí)聊天對話
10.1.1 系統(tǒng)設(shè)計(jì)
10.1.2 系統(tǒng)的模塊設(shè)計(jì)
10.1.3 系統(tǒng)編碼實(shí)現(xiàn)
10.2 聯(lián)網(wǎng)中國象棋游戲
10.2.1 系統(tǒng)設(shè)計(jì)
10.2.2 系統(tǒng)的模塊設(shè)計(jì)
10.2.3 系統(tǒng)編碼實(shí)現(xiàn)
10.2.4 系統(tǒng)體驗(yàn)
10.3 本章小結(jié)
第11章 Node.js實(shí)用工具
11.1 日志模塊工具
11.1.1 日志模塊介紹
11.1.2 日志模塊實(shí)現(xiàn)
11.1.3 日志模塊應(yīng)用
11.2 配置文件讀取模塊
11.2.1 配置文件解析模塊介紹
11.2.2 配置文件解析模塊實(shí)現(xiàn)
11.3 curl模塊
11.3.1 curl模塊介紹
11.3.2 curl模塊實(shí)現(xiàn)
11.3.3 curl模塊應(yīng)用
11.4 crontab模塊
11.4.1 crontab模塊介紹
11.4.2 crontab模塊設(shè)計(jì)實(shí)現(xiàn)
11.4.3 crontab模塊應(yīng)用
11.5 forever運(yùn)行腳本
11.5.1 forever運(yùn)行腳本介紹
11.5.2 forever運(yùn)行腳本實(shí)現(xiàn)
11.5.3 forever運(yùn)行腳本應(yīng)用
11.6 xml模塊的應(yīng)用
11.6.1 xml解析模塊介紹
11.6.2 xml模塊設(shè)計(jì)實(shí)現(xiàn)
11.6.3 xml模塊應(yīng)用
11.7 郵件發(fā)送模塊應(yīng)用
11.7.1 郵件模塊介紹
11.7.2 郵件模塊設(shè)計(jì)實(shí)現(xiàn)
11.7.3 郵件模塊應(yīng)用
11.8 本章小結(jié)