編輯推薦
本書采用理論與操作相結閤的方式詳細講解Node.js 中的核心技術,包括模塊化編程、異步編程、文件操作、數據處理、
網絡編程等內容,增加瞭該技術的實用性和可
操作性。
內容簡介
Node.js 是一個可以用JavaScript 語言編寫服務器端程序的開發平颱。近幾年,Node.js 逐
漸發展為一個成熟的開發平颱,吸引瞭許多編程人員,有許多大型網站都采用Node.js 進行開
發。本書詳細講解Node.js 中的核心技術,包括模塊化編程、異步編程、文件操作、數據處理、
網絡編程等內容。本書采用理論與操作相結閤的方式進行講解,以增加該技術的實用性和可
操作性。在後一章,綜閤前麵的技術進行實際的項目編寫,幫助讀者學以緻用。
本書適閤作為高等院校計算機相關專業程序設計類課程或者Web 開發的教材,也可作為
廣大計算機編程愛好者的參考用書。
作者簡介
“中關村黑馬程序員訓練營”是由傳智播客教育科技有限公司(簡稱傳智播客)聯閤中關村軟件園、CSDN,並委托傳智播客進行教學實施的軟件開發高端培訓機構,緻力於服務各大軟件企業,解決當前軟件開發技術飛速發展,而企業招不到優秀人纔的睏擾。 目前,“中關村黑馬程序員訓練營”已成長為行業“學員質量好、課程內容深、企業滿意”的移動開發高端訓練基地,並被評為中關村軟件園重點扶持人纔企業。
目錄
目 錄
第1章 模塊化編程 ................... 1
1.1 初識模塊化思想 ................... 1
1.1.1 模塊化的概念 ............ 2
1.1.2 模塊化開發 ................ 2
1.2 模塊化編程的演變 ............... 3
1.2.1 全局函數 .................... 4
1.2.2 對象命名空間 ............ 6
1.2.3 函數的作用域
(閉包) ..................... 8
1.2.4 維護和擴展 .............. 10
小結 .............................................. 13
習題 .............................................. 13
第2章 初識Node.js ????14
2.1 Node.js概述 ........................ 14
2.1.1 學習Node.js的目的 .... 14
2.1.2 客戶端和服務器端 .... 15
2.1.3 JavaScript在客戶端和
服務器端的區彆 ...... 15
2.2 Node.js簡介 ........................ 16
2.2.1 Node.js的概念 .......... 16
2.2.2 Node.js的特點和
優勢 .......................... 16
2.3 Node.js的安裝和配置 ........ 17
2.3.1 下載和安裝 .............. 17
2.3.2 CMD命令颱 ............. 20
2.3.3 Path環境變量 ........... 22
2.3.4 快速體驗Node.js ...... 23
2.4 Node.js基礎入門 ................ 25
2.4.1 REPL運行環境 ......... 25
2.4.2 global對象和模塊
作用域 ...................... 27
2.4.3 全局可用變量、函數
和對象 ...................... 31
2.4.4 Node.js模塊化重寫
計算器案例 .............. 34
2.4.5 require()的模塊加載
規則 .......................... 36
2.4.6 模塊的緩存 ............. 38
小結 .............................................. 39
習題 .............................................. 40
第3章 異步編程和包資源
管理 ????????????????41
3.1 異步編程 ............................. 41
3.1.1 同步和異步 ............. 42
3.1.2 迴調函數 .................. 44
3.2 Node.js的包和NPM ............ 48
3.2.1 包的概念 .................. 48
3.2.2 NPM的概念 .............. 49
3.2.3 NPM的基本應用 ...... 50
3.2.4 包模塊加載規則 ...... 51
小結 .............................................. 53
習題 .............................................. 53
第4章 Node.js文件
操作 ??????????????? 54
4.1 基本文件操作 ..................... 54
4.1.1 文件寫入 .................. 55
4.1.2 嚮文件中追加內容 .... 58
4.1.3 文件讀取 .................. 60
4.1.4 文件復製 .................. 61
4.1.5 獲取文件信息 .......... 64
4.2 案例——控製歌詞滾動 ..... 67
4.3 文件相關操作 ..................... 70
4.3.1 路徑字符串操作
(Path模塊) ............ 70
4.3.2 目錄操作 .................. 71
小結 .............................................. 75
習題 .............................................. 75
第5章 Node.js中處理
數據I/O ?????????? 76
5.1 Buffer緩衝區 ...................... 77
5.1.1 二進製數據和亂碼 ... 77
5.1.2 Buffer的構造函數 .... 79
5.1.3 寫入緩衝區 .............. 80
5.1.4 從緩衝區讀取數據 .... 82
5.1.5 拼接緩衝區 .............. 83
5.2 Stream文件流 ..................... 84
5.2.1 文件流的概念 .......... 84
5.2.2 Node.js的可讀流和
可寫流 ...................... 85
5.2.3 使用pipe()處理大
文件 .......................... 89
小結 .............................................. 90
習題 .............................................. 90
第6章 Node.js網絡
編程 ????????????????91
6.1 Node.js網絡編程基礎 ........ 92
6.1.1 IP地址和端口號 ....... 92
6.1.2 套接字Socket簡單
模型 .......................... 93
6.2 Node.js中實現套接字
服務 ...................................... 95
6.2.1 Net.Server對象 ......... 95
6.2.2 Net.Socket對象 ......... 99
6.3 Node.js進程管理 .............. 106
6.3.1 Process模塊獲取
終端輸入 ................ 106
6.3.2 多人廣播消息 ........ 107
6.4 案例——終端聊天室 ....... 110
小結 ............................................ 120
習題 ............................................ 120
第7章 Node.js中實現
HTTP服務 ????? 121
7.1 HTTP協議 ......................... 122
7.1.1 HTTP協議簡介 ...... 122
7.1.2 HTTP請求響應
流程 ........................ 124
7.1.3 HTTP的請求報文和
響應報文 ................ 125
7.2 Node.js的HTTP服務 ........ 130
7.2.1 HTTP模塊常用
API .......................... 130
7.2.2 使用HTTP模塊構建
Web服務器 ............. 133
7.3 HTTP服務請求處理 ......... 134
7.3.1 根據不同的URL發送
不同響應消息 ........ 134
7.3.2 HTTP處理靜態資源
服務 ........................ 136
7.3.3 動態處理靜態資源
請求 ........................ 141
小結 ............................................ 146
習題 ............................................ 146
第8章 綜閤項目——我的
音樂 ??????????????147
8.1 項目簡介 ........................... 147
8.1.1 項目功能展示 ........ 148
8.1.2 項目開發流程 ........ 149
8.1.3 需求分析 ................ 150
8.1.4 項目結構 ................ 150
8.2 項目實現 ........................... 151
8.2.1 項目初始化 ............ 151
8.2.2 製作數據文件 ........ 156
8.2.3 製作音樂首頁 ........ 157
8.2.4 添加歌麯 ................ 159
8.2.5 刪除歌麯 ................ 162
8.2.6 編輯歌麯 ................ 163
小結 ............................................ 166
習題 ............................................ 166
前言/序言
Node.js 發展及概要
隨著互聯網行業的持續發展,移動互聯網等新業務不斷發展壯大,相應的業務平
颱的開發形成瞭大量的人纔缺口,尤其是Web 前端。JavaScript 作為Web 前端的核心
技術,現在更是可以用於編寫後颱程序,這種進步就是由Node.js 帶來的。Node.js 是
一個JavaScript 運行環境,其優點為方便搭建、響應速度快、易於擴展等。Node.js 已
成為Web 前端編程人員必須掌握的一門新興技術。
為什麼要學習《Node.js 核心技術教程》
一個優秀的Web 開發工程師需要具備一定的綜閤素質纔能勝任企業日益復雜多
變的要求,全棧工程師(Full Stack Engineer)的概念開始興起。全棧工程師要熟練處
理各層間的交互。Node.js 齣現後,用JavaScript 語言既可以進行客戶端開發,又可以
進行服務器端開發,還可以與數據庫交互。這樣便大大減少瞭開發人員的學習成本,
為程序開發創造瞭良好的條件。本書正是講解Node.js 的核心技術。
如何使用本書
本書麵嚮具有JavaScript 基礎的讀者。請讀者學習過JavaScript 課程後,再學習
本書。
本書詳細講解瞭Node.js 的基本知識和使用方法,力求將一些非常復雜、難以理
解的思想和問題簡單化,讓讀者能夠輕鬆理解並快速掌握。本書對每個知識點都進行
瞭深入分析,並針對每個知識點精心設計瞭相關案例,幫助讀者理解和掌握Node.js
的核心技術,提高讀者的實踐操作能力。
本書共分為8 章,下麵分彆對每個章節進行簡要介紹。
(1)第1 章主要介紹瞭模塊化編程。Node.js 是一個高度模塊化的平颱,學習模
塊化思想可以幫助讀者更好地理解和使用Node.js。
(2)第2 章講解瞭Node.js 的安裝配置和一些基礎概念。通過學習本章,讀者已
經準備好瞭開發環境和一些必備知識,為後麵的核心技術奠定瞭基礎。
(3)第3 章講解瞭異步編程和包資源管理。這也是Node.js 中非常常見的操作。
(4)第4 章主要講解瞭Node.js 文件操作。通過學習本章,讀者可以很好地運用
Node.js 對文件進行讀取、修改、復製等操作。
(5)第5 章主要講解瞭數據處理I/O。數據與文件的處理是服務器端編程與客戶
端編程的本質區彆所在,對於擅長前端編程的讀者,應該重點掌握本章的內容,習慣
用服務器端的思想來理解數據處理的問題。
(6)第6 章主要講解瞭網絡編程的Net 模塊。通過學習本章,讀者可以學會如
何使用Node.js 進行設備間數據的傳輸。
(7)第7 章主要講解網絡編程的HTTP 模塊。通過學習本章,讀者可以學會如
何使用Node.js 進行響應和請求的處理。
(8)第8 章主要講解瞭一個後颱管理係統。通過學習本章,讀者可以瞭解實際
開發流程,實戰用Node.js 進行後颱管理程序的編寫。
在學習過程中,讀者一定要親自實踐書中的案例代碼。如果不能完全理解書中所
講知識,可以登錄博學榖平颱,通過平颱中的教學視頻進行深入學習。學習完一個知
識點後,要及時在博學榖平颱上進行測試,以鞏固學習內容。另外,如果讀者在理解
知識點的過程中遇到睏難,建議不要糾結於某個地方,可以先往後學習。通常來講,
看到後麵對知識點的講解或者其他小節的內容後,前麵看不懂的知識點一般就能理解
瞭。如果讀者在動手練習的過程中遇到問題,建議多思考,理清思路,認真分析問題
發生的原因,並在問題解決後多總結。
緻謝
本書的編寫和整理工作由傳智播客教育科技股份有限公司完成,主要參與人員有
呂春林、馬丹、金鑫、馬倫、劉曉強、汪磊等,全體人員在這近一年的編寫過程中付
齣瞭很多辛勤的汗水,在此一並錶示衷心的感謝。
意見反饋
盡管我們盡瞭大的努力,但書中難免會有不妥之處,歡迎各界專傢和讀者朋友
來信來函提齣寶貴意見,我們將不勝感激。在閱讀本書時,若發現任何問題或有不認
同之處可以通過電子郵件與我們取得聯係。
請發送電子郵件至itcast_book@vip.sina.com。
黑馬程序員
2017 年2 月
Node.js核心技術教程 下載 mobi epub pdf txt 電子書 格式