TOP
月月讀書金,登入即領,滿600現折50!!
新時期的Node.js入門(簡體書)
滿額折

新時期的Node.js入門(簡體書)

商品資訊

人民幣定價:49 元
定價
:NT$ 294 元
優惠價
87256
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點 :7 點
商品簡介
作者簡介
名人推薦
目次

商品簡介

Node.js是一門開源的、為Web而生的語言,具有高并發、異步等特點,并且擁有一個十分活躍的開發者社區。與Ruby、Python等語言相比,Node.js更年輕、更易于沒有經驗的人上手使用,因此很快在世界各地的開發者中收獲了一大批擁躉。在,Node.js在許多企業中獲得了廣泛應用,并取得了一系列的應用成果。然而,隨著技術的不斷更新、ECMAScript2015等新標準紛紛確定,現有的中文書籍就變得有些過時。本書立足于新的技術潮流,介紹了一系列全新的語言特性和標準,以便讓讀者在學習基礎知識的同時緊跟新技術的發展。本書分為8章6個附錄,講解了Node.js的各種基礎特性,使讀者快速入門,同時結合語言*的發展趨勢,讓讀者能夠緊跟技術潮流。本書圍繞Node.js在Web站點開發和爬蟲系統中的應用展開,對Node.js在大型項目中的定位與應用做了詳細的說明。本書可用于Node.js入門,適合未接觸過Node的讀者以及在校的學生閱讀,也適合作為高等院校和培訓學校相關專業的師生教學參考。

作者簡介

李鍇,畢業于廈門大學軟件學院,目前就職于花旗集團,從事Web前端開發工作。

名人推薦

從零開始學習開發完整可用的項目,掌握語言細節并獲得實際經驗以實際應用為背景,闡述Node.js在實際項目中的定位和潛在的陷阱適合沒有Node.js經驗的讀者,旨在快速上手到獨立開發小型應用

目次

章 基礎知識 11.1Node是什么 11.1.1Node與 11.1.2runtime和VM 21.2Node的內部機制 31.2.1何為回調 31.2.2同步/異步和阻塞/非阻塞 41.2.3單線程和多線程 61.2.4并行和并發 71.3 事件循環(Eventloop) 81.3.1事件與循環 81.3.2Node中的事件循環 91.3.3process.nextTick 131.4 總結 161.5 參考資源 16第2章 常用模塊 172.1Module 172.1.1的模塊規范 172.1.2require及其運行機制 182.1.3require的隱患 202.1.4模塊化與作用域 202.2Buffer 222.2.1Buffer的構建與轉換 232.2.2Buffer的拼接 242.3File System 262.4服務 302.4.1創建 服務器 302.4.2處理請求 322.4.3Response對象 342.4.4上傳數據 352.4.5客戶端服務 382.4.6創建代理服務器 392.5TCP服務 402.5.1TCP和Socket 412.5.2創建TCP服務器 412.6 更安全的傳輸方式——SSL 422.6.1什么是SSL 432.6.2SSL原理 432.6.3對稱加密與非對稱加密 442.6.4關于CA 452.6.5創建S服務 452.7WebSocket 482.7.1保持通話 482.7.2為什么要有WebSocket 492.7.3WebSocket與Node 502.8Stream 502.8.1Stream 的種類 502.8.2ReadLine 532.8.3自定義Stream 542.9Events 552.9.1事件和監聽器 552.9.2處理error事件 562.9.3繼承Events模塊 572.10多進程服務 582.10.1child_process模塊 582.10.2spawn 582.10.3fork 592.10.4exec和execFile 602.10.5各方法之間的比較 622.10.6進程間通信 642.10.7Cluster 652.11Process對象 662.11.1環境變量 672.11.2方法和事件 672.11.3一個例子:修改所在的時區 682.12Timer 702.12.1常用API 702.12.2定時器中的this 712.13小結 722.14引用資源 72第3章 用ES6來書寫Node 733.1 新時代的EMCAScript 733.1.1的缺陷 733.1.2Node對新標準的支持 743.1.3使用nvm管理Node版本 753.2 塊級作用域 753.2.1ES5中的作用域 753.2.2let關鍵字 773.2.3const關鍵字 783.3 數組 783.3.1find()和findIndex() 793.3.2from()方法 793.3.3fill()方法 813.3.4數組的遍歷 813.3.5TypedArray 823.4 函數 823.4.1參數的默認值 823.4.2Spread運算符 833.4.3箭頭函數 833.4.4箭頭函數的陷阱 863.5Set和Map 873.5.1Set和WeakSet 873.5.2Map和WeakMap 883.6Iterator 893.6.1Java中的Iterator 893.6.2ES6中的Iterator 893.6.3Iterator的遍歷 903.7 對象 913.7.1新的方法 913.7.2對象的遍歷 923.8 類 933.8.1屬性和構造函數 943.8.2類方法 943.8.3__proto__ 953.8.4靜態方法 963.9 類的繼承 963.9.1ES5中的繼承 963.9.2ES6中的繼承 983.9.3Node中的類繼承 1003.10ES6的模塊化標準 1013.11使用babel來轉換代碼 1023.12小結 1063.13引用資源 106第4章 書寫異步代碼 1074.1 異步操作的返回值 1084.2 組織回調方法 1084.2.1回調與CPS 1084.2.2使用async模塊簡化回調 1104.3 使用Promise 1124.3.1Promise的歷史 1124.3.2Promise是什么 1134.3.3ES2015中的Promise 1144.3.4Promise的常用API 1164.3.5使用Promise組織異步代碼 1194.3.6第三方模塊的Promise 1204.4Generator,一種過渡方案 1224.4.1Generator的使用 1224.4.2Generator函數的執行 1234.4.3Generator中的錯誤處理 1264.4.4用Generator組織異步方法 1274.4.5Generator的自動執行 1284.5 回調的終點——async/await 1314.5.1async函數的概念 1314.5.2await關鍵字 1334.5.3在循環中使用async方法 1354.5.4async和await小結 1364.5.5async 函數的缺點 1374.6 總結 1384.7 引用資源 139第5章 使用Koa2構建Web站點 1405.1Node Web框架的發展歷程 1405.1.1Connect 1405.1.2Express 1415.1.3Koa 1415.2 內容規劃 1425.2.1需求分析 1425.2.2技術選型 1425.3Koa入門 1435.3.1Koa1.x 與Koa2 1435.3.2context對象 1445.4middleware 1485.4.1中間件的概念 1485.4.2next方法 1505.4.3中間件的串行調用 1515.4.4一個例子——如何實現超時響應 1525.5 常用服務的實現 1545.5.1靜態文件服務 1545.5.2路由服務 1555.5.3數據存儲 1565.5.4文件上傳 1605.5.5頁面渲染 1635.6 構建健壯的Web應用 1655.6.1上傳文件驗證 1665.6.2使用Cookie進行身份驗證 1675.6.3使用Session記錄會話狀態 1705.7 使用Redis進行持久化 1735.7.1Node和Redis的交互 1735.7.2CURD操作 1745.7.3使用Redis持久化session 1765.7.4Redis在Node中的應用 1795.8Koa源碼剖析 1805.8.1Koa的啟動過程 1805.8.2中間件的加載 1815.8.3listen()方法 1845.8.4next()與return next() 1855.8.5關于Can't set headers after they are sent. 1865.8.6Context對象的實現 1875.8.7Koa的優缺點 1895.9 網站部署 1905.9.1本地部署 1905.9.2部署在云服務主機上 1915.9.3通過GitHub pages來部署 1935.10總結 1945.11引用資源 194第6章 爬蟲系統的開發 1956.1 爬蟲技術概述 1966.2 技術棧簡介 1966.2.1request.js 1966.2.2cheerio 1976.2.3消息隊列 1996.3 構建腳手架 1996.3.1選擇目標網站 1996.3.2分析URL結構 2006.3.3構建 請求 2006.3.4解析頁面元素 2016.4 進行批量爬取 2036.4.1使用遞歸和定時器 2036.4.2多進程并行 2056.5 爬蟲架構的改進 2066.5.1異步流程控制 2066.5.2回到初的目標 2066.5.3多進程模型的缺陷 2086.6 進程架構的改進 2086.6.1生產/消費模型 2086.6.2生產者的實現 2096.6.3消費者的實現 2116.7 反爬蟲處理 2136.7.1爬蟲的危害 2136.7.2識別一個爬蟲 2136.7.3針對爬蟲的處理 2146.8 總結 2166.9 引用資源 216第7章 測試與調試 2177.1 單元測試 2187.1.1使用Assert模塊 2187.1.2Jasmine 2197.1.3Ava.js——面向未來 2247.2 測試現有代碼 2277.3 更高維度的測試 2287.3.1基準測試 2287.3.2集成測試 2297.3.3持續集成 2297.4 調試Node應用 2317.4.1語言和IDE 2327.4.2使用node-inspector 2337.4.3使用v8-inspector 2347.4.4使用IDE進行調試 2367.4.5cpu profiling 2377.5 總結 2397.6 引用資源 239第8章 Node中的錯誤處理 2408.1Error模塊 2418.2 錯誤處理的幾種方式 2418.3 被拋棄的Domain 2438.3.1Domain模塊簡介 2438.3.2Domain原理 2478.3.3Domain中間件 2498.3.4Domain的缺陷 2498.4ES6中的錯誤處理 2508.4.1Promise 2508.4.2Generator 2508.4.3async函數 2518.5Web服務中的錯誤處理 2518.5.1針對每個請求的錯誤處理 2518.5.2Express中的錯誤處理 2528.5.3Koa中的錯誤處理 2528.6 防御式編程與Let itcrash 2538.7 總結 2568.8 引用資源 256附錄A 進程、線程、協程 257A.1 從操作系統說起 257A.2Node中的協程 258附錄B Lua語言簡介 259B.1Lua中的數據類型 259B.2 定義一個函數 260B.3Lua中的協程 261附錄C 從零開發一個NodeWeb框架 263C.1 框架的雛形 263C.2 框架的完善 264C.3 總結 268附錄D MongoDB和Redis簡介 269D.1NoSQL 269D.2MongoDB簡介 269D.3Redis簡介 271附錄E 使用Docker來實現虛擬化 274E.1Docker的一些常用命令 274E.2Redis服務 275附錄F npm與包管理 277F.1package.json常用字段 277F.2 依賴版本的管理 278

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 256
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區