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