主體介紹
Web前端工程師全面揭秘原生Node.js的開發實踐,不藉助任何第三方框架,通過編寫原生代碼,講解Node.js套用開發。
深入詳解Node.js原生文檔,根據原生API實踐和大量套用實例,詳細分析Node.js的開發過程,了解原生Node.js的API應。
全面涵蓋Node.js基礎知識、模組與NPM、Web套用、UDP服務、異步編程思想、異常處理過程、運算元據庫的方法、框架開發與套用、開發工具等。
注重實踐,講解時穿插了430多個代碼小示例,提供了30多個編程實踐練習題及解答,還介紹了5個大型系統的開發,並贈送8小時教學視頻(需下載)。
作者簡介
黃丹華,Web前端工程師。專注於PHP與Node.js的開發與套用。較早時間就開始關注Node.js的發展,並系統地學習和研究了國內外大量的Node.js學習資料。獨創Mywebl.0的Node.js框架,正在開發Myweb2.0的Node.js框架。自營chinaNode.js微信公眾賬號,通過公眾賬號給國內外Node.js愛好者提供一個學習交流的平台。個人技術部落格中提供的Node.js入門、資源分享和Nde.js異常分析等優秀文章,被眾多的Node.js愛好者所認可。
內容簡介
本書重在代碼實踐,閱讀時應多注重實踐編程。本書提供8小時配套教學視頻及實例原始碼,便於讀者高效、直觀地學習。 本書共分為11章。涵蓋的主要內容有:Node.js的概念、套用場景、環境搭建和配置、異步編程;Node.js的模組概念及套用、Node.js的設計模式;HTTP簡單服務的搭建、Node.js靜態資源管理、檔案處理、Cookie和Session實踐、Crypto模組加密、Node.js與Nginx配合;UDP伺服器的搭建、Node.js與PHP之間合作;Node.js的實現機制、Node.js的原生擴展與套用;Node.js的編碼習慣;Node.js操作MySQL和MongoDB;基於Node.js的Myweb框架的基本設計架構及實現;利用Myweb框架實現一個簡單的Web聊天室;線上聊天室案例和線上中國象棋案例的實現;Node.js的日誌模組、curl模組、crontab模組、forever模組、xml模組和郵件傳送模組等套用工具。 本書非常適合從事編程開發的學生、教師、廣大科研人員和工程技術人員研讀。建議閱讀本書的讀者對JavaScript的語法和PHP的相關知識有一定的了解。當然,如果你是初學者,本書也是一本難得的參考書。
內容體系
該書共分11章,各章的具體內容介紹如下。
第1章主要介紹了Node.js的概念、配置、第一個Node.js程式Hello World的實現及異步編程思想等。
第2章主要介紹了Node.js中的模組的概念,以及Node.js中exports和module.exports之間的聯繫和區別。Node.js中的NPM模組包含request、socket.io、express、jade和forever模組。Node.js中的設計模式包含單例、適配器和裝飾模式。
第3章主要介紹了Node.js的Web開發技術。包含HTTP簡單服務搭建、Node.js靜態資源伺服器實現、檔案處理、Cookie和Session實踐、Crypto模組加密及Node.js與Nginx配合實踐等。
第4章主要介紹了Node.js中UDP伺服器的搭建實踐及Node.js與PHP之間的合作 方式。
第5章主要介紹了Node.js中require機制的實現、Node.js的C++擴展(同步和異步接口)編譯實踐方法。
第6章主要介紹了一些關於Node.js的編碼習慣。
第7章主要介紹了利用Node.js操作MySQL和MongoDB的實例,其中包含實現Node.js的兩個基類分別對應於MySQL和MongoDB。另外,還介紹了MySQL和MongoDB環境的搭建,以及兩個數據中Node.js的NPM模組。
第8章主要從框架開發的角度介紹了一個基於Node.js的Myweb框架的基本設計架構及其實現的功能,以及該框架的實現。其中用到了express模組和jade解析模板,可幫助讀者進一步了解Node.js的Web套用開發和express框架的套用。
第9章主要從框架套用的角度介紹了如何使用框架做一個簡單的項目開發,即利用第8章的MyWeb 1.0框架實現一個簡單的Web聊天室MyChat套用。
第10章主要介紹了兩個實例:線上聊天室和聯網線上中國象棋。這兩個套用都是用該書中自我實踐的代碼框架MyWeb 2.0來實現的。
第11章主要介紹了Node.js的一些套用工具,包含日誌模組、curl模組、crontab模組、forever模組、xml模組和郵件傳送模組。
讀者對象
Node.js初學者;
PHP或者JavaScript程式設計師;
想全面、系統地學習Node.js的人員;
Node.js技術愛好者;
利用Node.js進行開發的技術人員;
大中專院校的學生和老師;
相關培訓學校的學員。
圖書目錄
第1章Node.js基礎知識
1.1概述
1.1.1Node.js是什麼
1.1.2Node.js帶來了什麼
1.2Node.js配置開發
1.2.1Windows配置
1.2.2Linux配置
1.2.3HelloWorld
1.2.4常見問題
1.3異步編程
1.3.1同步調用和異步調用
1.3.2回調和異步調用
1.3.3獲取異步函式的執行結果
1.4本章實踐
1.5本章小結
第2章模組和NPM
2.1什麼是模組
2.1.1模組的概念
2.1.2Node.js如何處理模組
2.1.3Node.js實現Web解析DNS
2.1.4Node.js重構DNS解析網站
2.1.5exports和module.eXports
2.2NPM簡介
2.2.1NPM和配置
2.2.2Express框架
2.2.3jade模板
2.2.4forever模組
2.2.5socket.io模組
2.2.6request模組
2.2.7Formidable模組
2.2.8NPM模組開發指南
2.3Node.js設計模式
2.3.1模組與類
2.3.2Node.js中的繼承
2.3.3單例模式
2.3.4適配器模式
2.3.5裝飾模式
2.3.6工廠模式
2.4本章實踐
2.5本章小結
第3章Node.js的Web套用
3.1HTTP伺服器
3.1.1簡單的HTTP伺服器
3.1.2路由處理
3.1.3GET和POST
3.1.4GET方法實例
3.1.5POST方法實例
3.1.6HTTP和HTTPS模組介紹
3.2Node.js靜態資源管理
3.2.1為什麼需要靜態資源管理
3.2.2Node.js實現簡單靜態資源管理
3.2.3靜態資源庫設計
3.2.4靜態檔案的快取控制
3.3檔案處理
3.3.1FileSystem模組介紹
3.3.2圖片和檔案上傳
3.3.3jade模板實現圖片上傳展示功能
3.3.4上傳圖片存在的問題
3.3.5檔案讀寫
3.4Cookie和Session
3.4.1Cookie和Session
3.4.2Session模組實現
3.4.3Session模組的套用
3.5Crypto模組加密
3.5.1Crypto介紹
3.5.2Web數據密碼的安全
3.5.3簡單加密模組設計
3.6Node.js+INginx
3.6.1Nginx概述
3.6.2Nginx的配置安裝
3.6.3如何構建
3.7 文字直播實例
3.7.1 系統分析
3.7.2 重要模組介紹
3.8擴展閱讀
3.9 本章實踐
3.10 本章小結
第4章Node.js高級編程
4.1 構建UDP伺服器
4.1.1 UDP 模組概述
4.1.2 UDP Server構建
4.2 UDP伺服器套用
4.2.1 套用分析介紹
4.2.2 UDP Server端(圖片處理伺服器)實現
4.2.3 UDP Client端(Web Server)
4.2.4 Jade頁面實現
4.2.5 套用體驗
4.3 Node.js與PHP合作
4.3.1 UDP方式
4.3.2 腳本執行
4.3.3 HTTP方式
4.3.4 三種方式的比較
4.4 本章實踐
4.5 本章小結
第5章 深入Node.js
5.1Node.js的相關實現機制
5.2 Node.js原生擴展
5.2.1 Node.js擴展開發基礎V8
5.2.2 Node.js外掛程式開發介紹
5.3 Node.js異步擴展開發與套用
5.4 本章實踐
5.5 本章小結
第6章 Node.js編碼習慣
6.1 Node.js規範
6.1.1 變數和函式命名規範
6.1.2 模組編寫規範
6.1.3 注釋
6.2 Node.js異步編程規範
6.2.1 Node.js的異步實現
6.2.2異步函式的調用
6.2.3Node.js異步回調深度
6.2.4 解決異步編程帶來的麻煩
6.3 異常邏輯的處理
6.3.1 require模組對象不存在異常
6.3.2 對象中不存在方法或者屬性時的異常
6.3.3 異步執行的for循環異常
6.3.4 利用異常處理辦法最佳化路由
6.3.5 異常情況匯總
6.4 本章實踐
6.5 本章小結
第7章 Node.js與資料庫
7.1 兩種資料庫介紹
7.1.1 MySQL介紹
7.1.2 MongoDB模組介紹
7.2Node.js與MySQL
7.2.1 MySQL安裝配置套用
7.2.2MySQL資料庫接口設計
7.2.3 資料庫連線
7.2.4 資料庫插入數據
7.2.5 查詢一條數據記錄
7.2.6 修改資料庫記錄
7.2.7 刪除資料庫記錄
7.2.8 數據條件查詢
7.3 Node.js與MongoDB
7.3.1 MongoDB的安裝以及工具介紹
7.3.2 MongOD的啟動運行方法
7.3.3 MongoDB的啟動運行
7.3.4 MongoDB資料庫接口設計
7.3.5 數據插入
7.3.6 數據修改
7.3.7 查詢一條數據
7.3.8 刪除數據
7.3.9 查詢數據
7.4 MySQL與MongoDB性能
7.4.1 測試工具及測試邏輯
7.4.2 MySQL性能測試代碼
7.4.3 MongoDB性能測試代碼
7.4.4 性能測試數據分析
7.5 本章實踐
7.6 本章小結
第8章 MyWeb框架介紹
8.1 MyWeb框架介紹
8.1.1 MyWeb框架涉及的套用
8.1.2 MyWeb框架套用模組
8.2 MyWeb源碼架構
8.2.1 框架MVC設計圖
8.2.2 框架檔案結構
8.2.3擴展閱讀之更快地了解新項目
8.3 框架源碼分析
8.3.1 框架入口檔案模組
8.3.2 路由處理模組
8.3.3 Model層基類
8.3.4 Controller層基類
8.4 本章實踐
8.5 本章小結
第9章 框架套用MyChat
9.1 編碼前的準備
9.1.1 套用分析
9.1.2 套用模組
9.1.3 功能模組設計
9.2 系統的編碼開發
9.2.1 Model層
9.2.2 Controller層
9.2.3 View層
9.3 項目總結
9.3.1 forever啟動運行項目
9.3.2 系統套用體驗
9.3.3 系統開發總結
9.4 擴展閱讀之MyWeb 2.0的介紹
9.5 本章實踐
9.6 本章小結
第10章Node.js實例套用
10.1 實時聊天對話
10.1.1 系統設計
10.1.2 系統的模組設計
10.1.3 系統編碼實現
10.2 聯網中國象棋遊戲
10.2.1 系統設計
10.2.2 系統的模組設計
10.2.3 系統編碼實現
10.2.4 系統體驗
10.3 本章小結
第11章 Node.js實用工具
11.1 日誌模組工具
11.1.1 日誌模組介紹
11.1.2 日誌模組實現
11.1.3 日誌模組套用
11.2 配置檔案讀取模組
11.2.1 配置檔案解析模組介紹
11.2.2 配置檔案解析模組實現
11.3 curl模組
11.3.1 curl模組介紹
11.3.2 curl模組實現
11.3.3 curl模組套用
11.4 crontab模組
11.4.1 crontab模組介紹
11.4.2 crontab模組設計實現
11.4.3 crontab模組套用
11.5 forever運行腳本
11.5.1 forever運行腳本介紹
11.5.2 forever運行腳本實現
11.5.3 forever運行腳本套用
11.6 xml模組的套用
11.6.1 xml解析模組介紹
11.6.2 xml模組設計實現
11.6.3 xml模組套用
11.7 郵件傳送模組套用
11.7.1 郵件模組介紹
11.7.2 郵件模組設計實現
11.7.3 郵件模組套用
11.8 本章小結