{"id":24376174,"url":"https://github.com/jollen/nodejs-fullstack-book","last_synced_at":"2025-04-06T16:13:10.772Z","repository":{"id":50152717,"uuid":"70031766","full_name":"jollen/nodejs-fullstack-book","owner":"jollen","description":"Node.js Fullstack《從零到一的進擊》：初學者寫給初學者的全端軟體教材 by Jollen","archived":false,"fork":false,"pushed_at":"2021-06-02T11:38:20.000Z","size":16633,"stargazers_count":330,"open_issues_count":2,"forks_count":85,"subscribers_count":46,"default_branch":"master","last_synced_at":"2024-06-17T19:11:01.285Z","etag":null,"topics":["blockchain","fullstack","iot","javascript","nodejs"],"latest_commit_sha":null,"homepage":"https://github.com/jollen/nodejs-fullstack-lessons","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jollen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-05T05:10:00.000Z","updated_at":"2024-06-17T19:11:01.285Z","dependencies_parsed_at":"2022-09-13T01:25:31.361Z","dependency_job_id":null,"html_url":"https://github.com/jollen/nodejs-fullstack-book","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollen%2Fnodejs-fullstack-book","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollen%2Fnodejs-fullstack-book/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollen%2Fnodejs-fullstack-book/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollen%2Fnodejs-fullstack-book/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jollen","download_url":"https://codeload.github.com/jollen/nodejs-fullstack-book/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247509236,"owners_count":20950232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","fullstack","iot","javascript","nodejs"],"created_at":"2025-01-19T05:59:19.278Z","updated_at":"2025-04-06T16:13:10.744Z","avatar_url":"https://github.com/jollen.png","language":"JavaScript","readme":"# Node.js Fullstack《從零到一的進撃》\n\n本書正在進行第 3 版的改版工程\n\n![](images/cover.jpg?1024)\n\n## 關於本書\n\n這是一本 Node.js Fullstack 的入門電子書，它的目標是成為優質的 Beginner to Beginner 教材。\n\n本書內容定位為《從零到一》的基礎教學，並使用在[我的 Node.js Fullstack 培訓課程](https://github.com/jollen/blog)。這更是一本「初學者寫給初學者」的教材：\n\n* 每個主題都從基本觀念（Zero）開始講述，並介紹到能撰寫簡單的程式為止（One）\n* 希望在學習的過程中，培養同學「寫程式的修煉」\n\n## Learn to Think\n\n**寫程式的修煉**是本書的宗旨，也是一直以來我做培訓的理念。這份教材使用在我的培訓課程，內容多以步驟化方式引導入門，但更重要的是，希望在 zero-to-one 的過程，培養「[Thinking](http://www.ybrikman.com/writing/2014/05/19/dont-learn-to-code-learn-to-think/)」的能力，而不是只學習如何照本宣科地寫程式。有了 Thinking 的能力後，會有另一個重要的收獲：能開始閱讀豐富的網路文件，還能在拜讀優質電子書的過程中，對大神分享的內容產生共鳴。\n\n## 關於作者\n\nJollen（陳俊宏），Moko365 Inc 創辦人暨講師、Mokoversity Inc 開放創新學院創辦人與 Devify Inc 發起人。興趣是 Web Fullstack 技術、Android Framework、Linux 驅動程式、軟體架構設計、研發管理與產品規劃。近期的研究計畫有 [WoT.City](https://github.com/wotcity)、[DevifyPlatform](https://github.com/DevifyPlatform) 與 [Flowchain](https://github.com/flowchain)，目前參與 2 個 Blockchain 相關新創團隊。\n\n * Email：\u003cjollen@jollen.org\u003e \n * Blog：http://www.jollen.org/blog\n * Github：https://github.com/jollen\n\n## Roadmap (2016 Q4)\n\n- [ ] 移除 ARM mbed 教學\n- [ ] 加入 MediaTek LinkIt Smart 7688 教學\n- [ ] 加入 Serverless 教學\n- [ ] 加入 P2P 教學\n- [ ] 第 1~13 章進行季度校對\n- [ ] 加入 IoT 初體驗\n\n## 公開時桯\n\n* 預計在完成 Roadmap 後正式公開發佈本書 (目前本書為試讀階段)\n* 預計 2017.1.1 發表\n\n## 發行紀錄\n\n* 2016-10-04：開始進行第 3 版改版工程\n* 2015-12-23：開始進行第 2 版改版工程\n\n# 目錄\n\n## Part 0：Fundamentals\n\n### 第 1 章：JavaScript 設計模式\n\n* 1.1 [Object](chapter01/1-object.md)\n* 1.2 [宣告 Class](chapter01/2-class.md)\n* 1.3 [使用 Factory Pattern](chapter01/3-factory.md)\n* 1.4 [Constructor Pattern](chapter01/4-constructor.md)\n* 1.5 [Design Pattern for Front-End](chapter01/5-frontend.md)\n* 1.6 [Module Pattern](chapter01/6-module.md)\n* 1.7 [jQuery Pattern](chapter01/7-jquery.md)\n* 1.8 [選擇器模式](chapter01/8-selector.md)\n* 1.9 [Prototype Pattern](chapter01/9-prototype.md)\n* 1.10 [其它模式](chapter01/10-misc.md)\n\n### 第 2 章：HTML5 軟體開發的概念\n\n* 2.1 [HTML5 的 Runtime 是瀏覽器](chapter02/1-html5-runtime.md)\n* 2.2 [從 Chrome 瀏覽器談起](chapter02/2-chrome.md)\n* 2.3 [Web Fullstack 軟體開發的概念](chapter02/3-fullstack.md)\n* 2.4 [JavaScript 也能開發雲端服務](chapter02/4-js.md)\n* 2.5 [Data Push 設計模式](chapter02/5-data-push.md)\n* 2.6 [Device API 的革命時代](chapter02/6-device-api.md)\n* 2.7 [重要的資訊交換格式：JSON](chapter02/7-json.md)\n\n### 第 3 章：Node.js 入門 - URL Routing 篇\n\n* 3.1 [Hello, World](chapter03/1-hello-world.md)\n* 3.2 [製作 Node.js 模組](chapter03/2-module.md)\n* 3.3 [URL Routing](chapter03/3-url-routing.md)\n* 3.4 [設計 HTTP API](chapter03/4-http-api.md)\n* 3.5 [解析 Query String](chapter03/5-query-string.md)\n\n### 第 4 章：Node.js 入門 - WebSocket 與 JSON 篇\n\n* 4.1 [第一個 WebSocket 伺服器](chapter04/1-websocket.md)\n* 4.2 [學習 JSON 格式](chapter04/2-json.md)\n* 4.3 [製作 WebSocket 用戶端](chapter04/3-websocket-client.md)\n* 4.4 [使用 jQuery 模式](chapter04/4-jquery-pattern.md)\n* 4.5 [使用 *this* 物件](chapter04/5-this.md)\n\n## Part 1：Basic Concepts\n\n### 第 5 章：軟體思惟 - Lambda 篇\n\n* 5.1 [Lambda](chapter05/1-lambda.md)\n* 5.2 [Callback Function](chapter05/2-callback.md)\n* 5.3 [從 TypeScript 談起](chapter05/3-typescript.md)\n* 5.4 Arrow Function 初體驗\n\n### 第 6 章：軟體思惟 - Web Service 篇\n\n* 6.1 [再探 HTTP API](chapter06/1-http-api.md)\n* 6.2 [REST](chapter06/2-rest.md)\n* 6.3 認識 HTTP 協定\n\n### 第 7 章：軟體思惟 - Non-blocking IO 篇\n\n* 7.1 [認識 Non-blocking IO](chapter07/1-nonblocking-io.md)\n* 7.2 [非同步式讀取多個檔案](chapter07/2-readfile-async.md)\n* 7.3 深入淺出 Asynchronous \n* 7.4 淺談 Callback Hell 與 Promise\n* 7.5 Promise 初體驗\n\n## Part 2：Getting Started\n\n### 第 8 章：Node.js 應用 - Express.js 入門\n\n* 8.1 [Express.js 初體驗](chapter08/1-expressjs.md)\n* 8.2 [MVC 與 HTML Template Engine](chapter08/2-template.md)\n* 8.3 [解析 app.js](chapter08/3-app.md)\n* 8.4 [Express URL Routing](chapter08/4-url-routing.md)\n* 8.5 [Middleware 的觀念](chapter08/5-middleware.md)\n\n### 第 9 章：Express.js 應用 - Middleware \n\n* 9.1 [Express.js 初體驗](chapter09/1-middleware.md)\n* 9.2 [MVC 與 HTML Template Engine](chapter09/2-use.md)\n* 9.3 [解析 app.js](chapter09/3-use-middleware.md) \n\n### 第 10 章：REST API 架構 - 使用 Express.js\n\n* 10.1 [服務導向架構](/chapter10/1-service.md)\n* 10.2 [關於 SOA 與 3-Tier 架構](chapter10/2-use.md)\n* 10.3 [Presenetation 在 Client 端](chapter10/3-use-middleware.md)\n* 10.4 [Express.js 與 REST API](chapter10/4-rest-api.md)\n* 10.5 [Node.js Chat Client](chapter10/5-chat-client.md) \n* 10.6 [CORS 與 Preflight Request](chapter10/6-cors-preflight.md) \n\n## Part 3：Fullstack Beginner\n\n### 第 11 章：REST API 應用 - 使用 jQuery\n\n* 11.1 [呼叫 REST API - 使用 jQuery](chapter11/1-rest-jquery.md)\n* 11.2 [認識 Key-Value Pairs 觀念](chapter11/2-key-value.md)\n\n### 第 12 章：MVC 架構實作 - Backbone.js 入門\n\n* 12.1 [Backbone Way](chapter12/1-backbone-way.md)\n* 12.2 [認識 *View.$el*](chapter12/2-$el.md)\n* 12.3 [認識 Backbone.Model](chapter12/3-model.md)\n* 12.4 [認識 Backbone.Model.fetch](chapter12/4-model-fetch.md)\n* 12.5 [認識 Backbone.Model.save](chapter12/5-model-save.md) \n\n### 第 13 章：NoSQL 資料庫應用 - 使用 MongoDB\n\n* 13.1 [關於 MongoDB](chapter13/1-mongodb.md)\n* 13.2 [安裝 MongoDB 資料庫伺服器](chapter13/2-mongolab.md)\n* 13.3 [使用 Mongoose Driver](chapter13/3-mongoose.md)\n* 13.4 [CRUD 實作](chapter13/4-crud.md)\n\n## Part 4：IoT Beginner\n\n### 第 14 章：Node.js 物聯網概論 - 使用 Web of Things\n\n* 14.1 [淺談 Web of Things](chapter14/1-wot.md)\n* 14.2 [Constrained Device](chapter14/2-constrained.md)\n* 14.3 [Physical Object](chapter14/3-physical-object.md)\n* 14.4 [邁向 Open 的 IoT 時代](chapter14/4-open-iot.md)\n\n### 第 15 章：Node.js 物聯網入門 - 使用 ARM mbed\n\n* 15.1 [物聯網學習體系](chapter15/1-roadmap.md)\n* 15.2 [ARM mbed 作業系統](chapter15/2-arm-mbed.md)\n* 15.3 [ARM mbed Networking](chapter15/3-mbed-networking.md)\n* 15.4 [使用 NTP－Network Time Protocol](chapter15/4-ntp.md)\n* 15.5 [WoT 裝置的 Use Case](chapter15/5-wot.md)\n\n### 第 16 章：Node.js 與前端 - 串接 WebSocket\n\n* 16.1 [前後端整合初體驗](chapter16/1-flux.md)\n* 16.2 淺談 Flux 架構模式\n* 16.3 前端入門初體驗 - 使用 React.js\n\n### 第 17 章：Node.js 與 MCS Lite\n\n* 17.1 [安裝 MCS Lite 私有雲環境](chapter17/1-mcs-lite.md)\n\n### 第 18 章：Node.js 與 Web of Things 物聯網\n\n* 18.1 [Broker 物聯網架構導論](chapter18/1-broker.md)\n* 18.2 [CoAP 觀念初體驗](chapter18/2-coap-client.md)\n\n## Part 5：Blockchain Beginner\n\n### 第 19 章：Node.js 與 Blockchain 入門\n\n* 19.1 [認識 Merkle Tree](chapter19/1-merkle-tree.md)\n* 19.2 [SHA256 與 Genesis Block](chapter19/2-genesis.md)\n* 19.3 [建立 Merkle Tree](chapter19/3-build-merkle-tree.md)\n\n### 第 20 章：Node.js 與 Blockchain 應用\n\n* 20.1 [為什麼要 Mining？](chapter20/1-why-mining.md)\n* 20.2 [簡單易懂的 Mining 演算法設計](chapter20/2-how-mining.md)\n* 20.3 Transaction 實作初體驗\n* 20.4 認識 OP_RETURN\n\n### 附錄\n\n* A [練習用專案](projects)\n\n## 培訓課程\n\n* [Mokoversity Fullstack IoT 2017](https://www.mokoversity.com/iotschool)\n\n## Contributors\n\n感謝 [@Hierom](https://github.com/Hierom)、[@benshiue](https://github.com/benshiue) 提交的貢獻與協助錯誤修正。\n\n## 授權方式\n\n\u003ca rel=“license” href=“http://creativecommons.org/licenses/by-nc/4.0/“\u003e\u003cimg alt=“創用 CC 授權條款” style=“border-width:0” src=“https://i.creativecommons.org/l/by-nc/4.0/88x31.png” /\u003e\u003c/a\u003e\u003cbr /\u003e本著作係採用\u003ca rel=“license” href=“http://creativecommons.org/licenses/by-nc/4.0/“\u003e創用 CC 姓名標示-非商業性 4.0 國際 授權條款\u003c/a\u003e授權\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjollen%2Fnodejs-fullstack-book","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjollen%2Fnodejs-fullstack-book","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjollen%2Fnodejs-fullstack-book/lists"}