Enviar búsqueda
Cargar
Node.js 入門 - 前端工程開發實務訓練
•
24 recomendaciones
•
6,001 vistas
Joseph Chiang
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 30
Descargar ahora
Descargar para leer sin conexión
Recomendados
Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練
Joseph Chiang
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
Node.js 淺談socket.io
Node.js 淺談socket.io
Simon Su
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
Fred Chien
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
用最潮的 Java script 盡情開發 kde qt 程式
用最潮的 Java script 盡情開發 kde qt 程式
Fred Chien
Recomendados
Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練
Joseph Chiang
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
Node.js 淺談socket.io
Node.js 淺談socket.io
Simon Su
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
Fred Chien
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
用最潮的 Java script 盡情開發 kde qt 程式
用最潮的 Java script 盡情開發 kde qt 程式
Fred Chien
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
App house
App house
Fred Chien
Node.js 進攻桌面開發
Node.js 進攻桌面開發
Fred Chien
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
洧杰 廖
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出
Eric Xiao
Non-MVC Web Framework
Non-MVC Web Framework
Fred Chien
第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
猴子也能懂的Node.js
猴子也能懂的Node.js
HopenglishRD
SeaJS - 前端模块化开发探索与网站性能优化实践
SeaJS - 前端模块化开发探索与网站性能优化实践
lifesinger
前端的未來 - 前端工程實務訓練
前端的未來 - 前端工程實務訓練
Joseph Chiang
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
Getting started with test automation
Getting started with test automation
Ivan Wei
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 Emulator
Fred Chien
五行完成網頁多國語系
五行完成網頁多國語系
amostsai
不一樣的Web server... coServ
不一樣的Web server... coServ
Ben Lue
模块化和组件化Css
模块化和组件化Css
Wu tianhao
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
webpack 入門
webpack 入門
Anna Su
程式人雜誌 2015年五月
程式人雜誌 2015年五月
鍾誠 陳鍾誠
前端工程開發實務訓練
前端工程開發實務訓練
Joseph Chiang
阿盤的 Beamer 中英字型配方
阿盤的 Beamer 中英字型配方
Chen-Pan Liao
Más contenido relacionado
La actualidad más candente
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
App house
App house
Fred Chien
Node.js 進攻桌面開發
Node.js 進攻桌面開發
Fred Chien
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
洧杰 廖
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出
Eric Xiao
Non-MVC Web Framework
Non-MVC Web Framework
Fred Chien
第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
猴子也能懂的Node.js
猴子也能懂的Node.js
HopenglishRD
SeaJS - 前端模块化开发探索与网站性能优化实践
SeaJS - 前端模块化开发探索与网站性能优化实践
lifesinger
前端的未來 - 前端工程實務訓練
前端的未來 - 前端工程實務訓練
Joseph Chiang
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
Getting started with test automation
Getting started with test automation
Ivan Wei
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 Emulator
Fred Chien
五行完成網頁多國語系
五行完成網頁多國語系
amostsai
不一樣的Web server... coServ
不一樣的Web server... coServ
Ben Lue
模块化和组件化Css
模块化和组件化Css
Wu tianhao
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
webpack 入門
webpack 入門
Anna Su
程式人雜誌 2015年五月
程式人雜誌 2015年五月
鍾誠 陳鍾誠
La actualidad más candente
(20)
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
App house
App house
Node.js 進攻桌面開發
Node.js 進攻桌面開發
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出
Non-MVC Web Framework
Non-MVC Web Framework
第三方内容开发最佳实践
第三方内容开发最佳实践
猴子也能懂的Node.js
猴子也能懂的Node.js
SeaJS - 前端模块化开发探索与网站性能优化实践
SeaJS - 前端模块化开发探索与网站性能优化实践
前端的未來 - 前端工程實務訓練
前端的未來 - 前端工程實務訓練
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Getting started with test automation
Getting started with test automation
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 Emulator
五行完成網頁多國語系
五行完成網頁多國語系
不一樣的Web server... coServ
不一樣的Web server... coServ
模块化和组件化Css
模块化和组件化Css
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
webpack 入門
webpack 入門
程式人雜誌 2015年五月
程式人雜誌 2015年五月
Destacado
前端工程開發實務訓練
前端工程開發實務訓練
Joseph Chiang
阿盤的 Beamer 中英字型配方
阿盤的 Beamer 中英字型配方
Chen-Pan Liao
2016.3.22 從車庫的舊pc到百萬台伺服器
2016.3.22 從車庫的舊pc到百萬台伺服器
Chung-Hsiang Ofa Hsueh
浏览器工作原理浅析
浏览器工作原理浅析
癸鑫 张
Learning React - I
Learning React - I
Mitch Chen
Web of Things (wiring web objects with Node-RED)
Web of Things (wiring web objects with Node-RED)
Francesco Collova'
Bigger
Bigger
gordon-zhiyong
Bluemix Node-Red Part II
Bluemix Node-Red Part II
Joseph Chang
01 Node-RED Basic
01 Node-RED Basic
Mr.Nukoon Phimsen
Bluemix node red-part iii
Bluemix node red-part iii
Joseph Chang
Bluemix Node-Red Part I
Bluemix Node-Red Part I
Joseph Chang
暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1
Michael Ding
用十分鐘學會 《微積分、工程數學》及其應用
用十分鐘學會 《微積分、工程數學》及其應用
鍾誠 陳鍾誠
我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary
Fred Chien
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
Aniruddha Chakrabarti
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
Beckett Hsieh
20161024 R語言資料分析實務 (3)
20161024 R語言資料分析實務 (3)
羅左欣
機率統計 -- 使用 R 軟體
機率統計 -- 使用 R 軟體
鍾誠 陳鍾誠
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端
鍾誠 陳鍾誠
20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)
羅左欣
Destacado
(20)
前端工程開發實務訓練
前端工程開發實務訓練
阿盤的 Beamer 中英字型配方
阿盤的 Beamer 中英字型配方
2016.3.22 從車庫的舊pc到百萬台伺服器
2016.3.22 從車庫的舊pc到百萬台伺服器
浏览器工作原理浅析
浏览器工作原理浅析
Learning React - I
Learning React - I
Web of Things (wiring web objects with Node-RED)
Web of Things (wiring web objects with Node-RED)
Bigger
Bigger
Bluemix Node-Red Part II
Bluemix Node-Red Part II
01 Node-RED Basic
01 Node-RED Basic
Bluemix node red-part iii
Bluemix node red-part iii
Bluemix Node-Red Part I
Bluemix Node-Red Part I
暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1
用十分鐘學會 《微積分、工程數學》及其應用
用十分鐘學會 《微積分、工程數學》及其應用
我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
20161024 R語言資料分析實務 (3)
20161024 R語言資料分析實務 (3)
機率統計 -- 使用 R 軟體
機率統計 -- 使用 R 軟體
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端
20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)
Similar a Node.js 入門 - 前端工程開發實務訓練
Node js实践
Node js实践
myzykj
Node getting-started
Node getting-started
lylijincheng
Node分享 展烨
Node分享 展烨
tb-vertical-guide
Class 20170126
Class 20170126
Ivan Wei
Javascript autoload
Javascript autoload
jay li
Node.js长连接开发实践
Node.js长连接开发实践
longhao
JavaScript Engine
JavaScript Engine
jay li
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
tka
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Jackson Tian
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight
Kuo-Chun Su
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
taobao.com
Performance 入門 - 前端工程開發實務訓練
Performance 入門 - 前端工程開發實務訓練
Joseph Chiang
YUI 教學 - 前端工程開發實務訓練
YUI 教學 - 前端工程開發實務訓練
Joseph Chiang
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5
lovingprince58
Erlang Practice
Erlang Practice
litaocheng
D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版
Jackson Tian
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Justin Lin
Html5
Html5
cazhfe
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
Nodejs部门分享
Nodejs部门分享
zffl
Similar a Node.js 入門 - 前端工程開發實務訓練
(20)
Node js实践
Node js实践
Node getting-started
Node getting-started
Node分享 展烨
Node分享 展烨
Class 20170126
Class 20170126
Javascript autoload
Javascript autoload
Node.js长连接开发实践
Node.js长连接开发实践
JavaScript Engine
JavaScript Engine
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
Performance 入門 - 前端工程開發實務訓練
Performance 入門 - 前端工程開發實務訓練
YUI 教學 - 前端工程開發實務訓練
YUI 教學 - 前端工程開發實務訓練
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5
Erlang Practice
Erlang Practice
D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Html5
Html5
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
Nodejs部门分享
Nodejs部门分享
Más de Joseph Chiang
不断归零的前端人生 - 2016 中国软件开发者大会
不断归零的前端人生 - 2016 中国软件开发者大会
Joseph Chiang
Let's Redux!
Let's Redux!
Joseph Chiang
Automatic Functional Testing with Selenium and SauceLabs
Automatic Functional Testing with Selenium and SauceLabs
Joseph Chiang
From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)
Joseph Chiang
JavaScript Promise
JavaScript Promise
Joseph Chiang
F2E for Enterprise
F2E for Enterprise
Joseph Chiang
JavaScript Code Quality
JavaScript Code Quality
Joseph Chiang
F2E, the Keystone
F2E, the Keystone
Joseph Chiang
Debugging - 前端工程開發實務訓練
Debugging - 前端工程開發實務訓練
Joseph Chiang
CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練
Joseph Chiang
HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練
Joseph Chiang
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Joseph Chiang
YUI is Sexy (for JSDC.tw)
YUI is Sexy (for JSDC.tw)
Joseph Chiang
YUI is Sexy - 使用 YUI 作為開發基礎
YUI is Sexy - 使用 YUI 作為開發基礎
Joseph Chiang
Git - The Social Coding System
Git - The Social Coding System
Joseph Chiang
miiiCasa is Fun
miiiCasa is Fun
Joseph Chiang
分享無名小站 API
分享無名小站 API
Joseph Chiang
yui3 is Sexy - 使用 YUI 3 的 Sexy Part !
yui3 is Sexy - 使用 YUI 3 的 Sexy Part !
Joseph Chiang
建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版
Joseph Chiang
不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!
Joseph Chiang
Más de Joseph Chiang
(20)
不断归零的前端人生 - 2016 中国软件开发者大会
不断归零的前端人生 - 2016 中国软件开发者大会
Let's Redux!
Let's Redux!
Automatic Functional Testing with Selenium and SauceLabs
Automatic Functional Testing with Selenium and SauceLabs
From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)
JavaScript Promise
JavaScript Promise
F2E for Enterprise
F2E for Enterprise
JavaScript Code Quality
JavaScript Code Quality
F2E, the Keystone
F2E, the Keystone
Debugging - 前端工程開發實務訓練
Debugging - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
YUI is Sexy (for JSDC.tw)
YUI is Sexy (for JSDC.tw)
YUI is Sexy - 使用 YUI 作為開發基礎
YUI is Sexy - 使用 YUI 作為開發基礎
Git - The Social Coding System
Git - The Social Coding System
miiiCasa is Fun
miiiCasa is Fun
分享無名小站 API
分享無名小站 API
yui3 is Sexy - 使用 YUI 3 的 Sexy Part !
yui3 is Sexy - 使用 YUI 3 的 Sexy Part !
建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版
不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!
Node.js 入門 - 前端工程開發實務訓練
1.
1
飛鴿傳書 Node.js 前端工程開發實務訓練 (6/8) 講師:蔣定宇 / josephj Copyright © 2012 FITPI. All rights reserved.
2.
2
Agenda ๏ Node.js 是什麼 ❖ 網站:Facebook, Plurk... ❖ PHP + Apache? ๏ 為什麼這麼流行 ❖ Event-driven, 模組化, JavaScript, 即時、新、快。 Copyright © 2012 FITPI. All rights reserved.
3.
3
什麼是 Node.js ๏ 讓 JavaScript 不只運行在瀏覽器上。 ❖ 跟 ASP, PHP, JSP, 有相同的地位。 ❖ 例行性作業、工具的 Shell Script。 ๏ 可獨自成為一台 Web Server。 ๏ Event-driven 事件驅動。 ๏ Non-blocking 非堵塞。 Copyright © 2012 FITPI. All rights reserved.
4.
4
Hello <Who>! http://f2eclass.com/lab/nodejs/hello.js 寫一個基本的 Shell Script var argv = process.argv, who = (typeof argv[2] !== "undefined") ? argv[2] : "World"; console.log("Hello " + who + "!"); > node hello.js “Awoo” http://nodejs.org/docs/latest/api/index.html 未來工作排程也能用 JavaScript 來寫了! Copyright © 2012 FITPI. All rights reserved.
5.
5
Hello <Who>! (2) http://f2eclass.com/lab/nodejs/http.js 快速建立 Web 伺服器! var http = require("http"); http.createServer(function (req, res) { res.setHeader("Content-Type", "text/html"); res.write("Hello World!"); res.end(); }).listen(8000); console.log("Server running at http://localhost:8000"); http://localhost:8000 http://nodejs.org/api/http.html#http_http Copyright © 2012 FITPI. All rights reserved.
6.
6
Node.js 的地位 在 Yahoo! 的基礎技術架構是由 LAMP 構成的 LAMP Linux Apache MySQL PHP 作業系統 網頁伺服器 資料庫 後端程式語言 Node.js 扮演了兩種角色、且功能更強大! Copyright © 2012 FITPI. All rights reserved.
7.
7
有什麼好處? ๏ 統一 Web 程式語言:前後端都寫 JS。 ❖ 將前端工程師從瀏覽器解放,後端一樣有能力開發! ❖ 可利用 JavaScript Event-driven 的特性。 ❖ 瀏覽器關閉 JavaScript 仍然可以跑 JavaScript @@ ๏ CommonJS 規範:比瀏覽器更有結構。 ๏ NPM 套件管理:非常容易安裝管理套件。 ๏ 活躍的社群。 ๏ 開發更為即時的網站應用程式。 Copyright © 2012 FITPI. All rights reserved.
8.
CommonJS 8
http://f2eclass.com/lab/nodejs/commonjs.js http://f2eclass.com/lab/nodejs/commonjs-module.js require 載入外部 JavaScript commonjs.js commonjs-module.js // 透過 require 將外部 JavaScript 載入 // 並不會是全域變數 var mod = require("./commonjs-module.js"); var foo = function () { console.log("foo is invoked"); mod.bar(); }; // 所有要被外部存取的方法或屬性都需要用 exports exports.bar = function () { console.log("bar is invoked"); }; > node commonjs.js 解決了全域變數與外部資源管理的問題 Copyright © 2012 FITPI. All rights reserved.
9.
NPM 套件管理 9
๏ Node.js Package Management ๏ 朴灵:「一個解決方案比詢問問題還多的社群」 ๏ 用 Node.js 寫 Shell Script、部落格系統沒好處? ❖ 可用的資源太多了,將大大減少開發時間! Copyright © 2012 FITPI. All rights reserved.
10.
10
使用 LiveReload 感受 npm 的強大與方便! ๏ 目錄檔案一但變動,網頁就會重新整理 ❖ 按 Ctrl + F5 手動重新整理很痛苦 ๏ 安裝 Node.js 版的 LiveReload 伺服器 > npm install -g simple-livereload ๏ 啟動 LiveReload 伺服器 > cd <工作目錄>; > simple-livereload <port> ๏ 安裝 LiveReload 的客戶端 Google 搜尋“Chrome LiveReload”就會找到 Copyright © 2012 FITPI. All rights reserved.
11.
11
使用 LiveReload 檔案有修改 Chrome 的 LiveReload 設定 瀏覽器也會更新 監聽 案變動並回報 收到變動就重新載入 伺服器 瀏覽器 持續連線 <port> Copyright © 2012 FITPI. All rights reserved.
12.
12
有什麼壞處? ๏ 太新了。還不夠穩定、API 也常在更新。 ๏ 網頁有任何修改都得重新執行 node.exe。 ๏ 會因為一個 JavaScript Error 就讓 Server 掛掉。 ๏ 靜態檔案處理不易,得存取 FileSystem API。 ๏ 有很多非同步的處理(Callback Pattern)。 Copyright © 2012 FITPI. All rights reserved.
13.
一個錯誤就會掛掉 13
commonjs.js commonjs-module.js // 透過 require 將外部 JavaScript 載入 // 並不會是全域變數 var mod = require("./commonjs-module.js"); var foo = function () { console.log("foo is invoked"); // foo(); // 未定義的函式! }; foo(); // 所有要被外部存取的方法或屬性都需要用 exports exports.bar = function () { console.log("bar is invoked"); }; > node commonjs.js 碰到未定義的 foo 函式就會立刻掛掉 其他的程式語言頂多出錯、不會全部死掉 Copyright © 2012 FITPI. All rights reserved.
14.
14
不適合靜態檔案的存取 http://f2eclass.com/lab/nodejs/html.js http://f2eclass.com/lab/nodejs/html.html html.js html.html var http = require("http"), <!DOCTYPE html> fs = require("fs"); <html> <head> // 必須採用 fs.readFile 將 案讀入 <meta charset="utf-8"> <title>Node.js - 測試網頁</title> fs.readFile("./html.html", function (err, html) { <style type="text/css"> if (err) { div { throw err; background: red; } } </style> // 建立 Web 伺服器 </head> <body> http.createServer(function (request, response) { <div> response.writeHeader(200, { Hello! 這是 Node.js 的測試網頁。 "Content-Type": "text/html" }); </div> response.write(html); </body> response.end(); </html> }).listen(8000); }); > node html.js 一旦把 Web Server 跑起來,再怎麼改 html.html 都不會生效。一定要重啟才行。 Copyright © 2012 FITPI. All rights reserved.
15.
15
解決方法 ๏ 別忘了這是個很活躍的社區,一個問題 至少有三個以上的解答 XD ❖ node-server https://github.com/cloudhead/node-static ❖ paperboy https://github.com/felixge/node-paperboy ❖ http-server https://github.com/nodeapps/http-server Copyright © 2012 FITPI. All rights reserved.
16.
16
node 介紹小結 這是一個很新的「程式語言 + 伺服器」,問題是很 多的,但是由於活躍的社群、解答也出乎想像地 多。 若你採用此技術作為開發,會看到許多最新的概 念,但同時也必須不斷地去面對問題、逼迫自己不 斷 Study,是很有挑戰性的。 以 Node.js 的本身語言特性與先天優秀的架構,它 必定是未來幾年內最重要的程式語言之一,是很值 得花時間投資的。 Copyright © 2012 FITPI. All rights reserved.
17.
17
Web 即時通訊 過去、現在、未來的幾種作法 最古老、不夠即時、干擾度很高的聊天室 到最近噗浪、臉書很即時且流暢的通知 他們各自是用什麼原理達成的呢? 這堂課讓你了解原理、引用現成工具 未來就可以輕鬆開發 Web 的即時訊息了! Copyright © 2012 FITPI. All rights reserved.
18.
18
輪詢 Polling 馬上結束 把請求保留住 請求永遠保持 有資料再回傳 斷掉再發新的 前兩種都有可能漏訊息 http://www.slideshare.net/amix3k/comet-with-nodejs-and-v8 Copyright © 2012 FITPI. All rights reserved.
19.
19
輪詢 Polling 不斷地向伺服器發送請求,詢問是否有新訊息 伺服器的負擔:請求數量過多 http://f2eclass.com/lab/node/polling.html Copyright © 2012 FITPI. All rights reserved.
20.
20
長時間的 Polling 不斷地向伺服器發送請求,詢問是否有新訊息 伺服器的負擔:請求數量仍多、而且連線時間長 http://f2eclass.com/lab/node/long-polling.html Copyright © 2012 FITPI. All rights reserved.
21.
21
Copyright © 2012 FITPI. All rights reserved.
22.
22
Copyright © 2012 FITPI. All rights reserved.
23.
23
關於輪詢 Long-polling 在傳統像是 Apache 的網站伺服器 是非常吃記憶體的,最好還是採用 nginx 或 node 兩種 Polling 都是單向的: 由 Browser 向 Server 詢問是否有新訊息 (pull) 而非有新訊息就由 Server 推向 Browser (push) Copyright © 2012 FITPI. All rights reserved.
24.
24
Web Socket 建立雙向通道 有資料的時候才互相傳遞,效能最好的作法! http://f2eclass.com/lab/node/websocket.html Copyright © 2012 FITPI. All rights reserved.
25.
25
即時通訊小結 WebSocket 是 HTML5 所帶來的新協定,瀏覽器 實作不一,所以沒辦法畢其功於一役。我們仍得針 對較差的瀏覽器採用 Long-polling、甚至採用過渡 時期的 Flash WebSocket。 要看瀏覽器支援度與是否安裝 Flash、實作 Long- polling, Flash WebSocket, WebSocket(前後端 都要改),這也太辛苦了吧! Copyright © 2012 FITPI. All rights reserved.
26.
26
最佳解決方案! Socket.io 也是 Node.js 的一個套件 可以自行偵測瀏覽器環境、決定要採用何種方案 你的程式只要寫一份就可以啦 :D http://socket.io/ Copyright © 2012 FITPI. All rights reserved.
27.
27
在不同瀏覽器執行 http://f2eclass.com/lab/node/socket-io.js 觀察看看瀏覽器是採用何種方法取得新訊息的。 Copyright © 2012 FITPI. All rights reserved.
28.
28
YUI in Node.js YUI 與 Node.js 的完美結合 Write it once, use everywhere! 讓你寫的 YUI 在前後端都能夠執行! https://github.com/davglass/nodejs-yui3 http://www.youtube.com/watch?v=quMt0w7aK4s Copyright © 2012 FITPI. All rights reserved.
29.
29
實作照片網站的通知 當有人上傳了一張新照片 其他正在線上的人都能收到通知 Copyright © 2012 FITPI. All rights reserved.
30.
30
相關資源 ๏ 固定聚會:Node.js Taiwan Party http://nodejs.tw/ ๏ Node.js 台灣社群協作電子書 http://book.nodejs.tw/ ๏ CNode: Node.js 专业中文社區 http://cnodejs.org ๏ Node Packaged Modules https://npmjs.org/ Copyright © 2012 FITPI. All rights reserved.
Descargar ahora