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