Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Node.js - Web 前端程式開發實務
Search
Joseph Chiang
May 02, 2013
Programming
2k
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node.js - Web 前端程式開發實務
Joseph Chiang
May 02, 2013
More Decks by Joseph Chiang
See All by Joseph Chiang
不断归零的前端人生 - 2016 中国软件开发者大会
josephj
1
490
Let's Redux!
josephj
4
330
Automatic Functional Testing with Selenium and SauceLabs
josephj
2
330
From Hacker to Developer
josephj
1
180
tmuxinator
josephj
0
250
JavaScript Promise
josephj
0
260
Be an Internet Person
josephj
9
660
F2E Evolution
josephj
55
3.4k
F2E for Enterprise
josephj
42
5.7k
Other Decks in Programming
See All in Programming
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
910
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
4k
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
280
golang-bob.pdf
iwatsukayura
0
130
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
AWSに止められる覚悟してますか?
morizo_1984
2
540
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
830
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
The Rails Doctrine Decade
koic
2
600
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Faster Mobile Websites
deanohume
310
32k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Thoughts on Productivity
jonyablonski
76
5.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Un-Boring Meetings
codingconduct
0
460
Abbi's Birthday
coloredviolet
4
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Transcript
Copyright © 2012 FITPI. All rights reserved. ỴἝẖℼ/PEFKT భ؊۽ӱῘứℯ↩⇪‣
ᾣ℩ğᾠקდKPTFQIK 1
Copyright © 2012 FITPI. All rights reserved. "HFOEB ๏ /PEFKT൞喁
❖ ᅟğ'BDFCPPL 1MVSL ❖ 1)1 "QBDIF ๏ 㬪喁≾喁ੀྛ ❖ &WFOUESJWFO ଆ⊾߄ +BWB4DSJQU ࠧℭaྍaॹb 2
Copyright © 2012 FITPI. All rights reserved. 喁൞/PEFKT ๏ +BWB4DSJQU҂ᆺ≓ྛᄝ⏟´ఖഈb
❖ ۵"41 1)1 +41 Ⴕཌྷֹ໊֥b ❖ ২ྛྟቔ∊a۽ऎ֥4IFMM4DSJQUb ๏ ॖỒሱӮ㬪၂8FC4FSWFSb ๏ &WFOUESJWFO൙ࡱọb ๏ /POCMPDLJOH٤ೖb 3
Copyright © 2012 FITPI. All rights reserved. )FMMP8IP 4 var
argv = process.argv, who = (typeof argv[2] !== "undefined") ? argv[2] : "World"; console.log("Hello " + who + "!"); http://f2eclass.com/lab/nodejs/hello.js > node hello.js “Awoo” ⇔၂ἠࠎЧ֥4IFMM4DSJQU ໃῲ۽ቔஆӱ္ିႨ+BWB4DSJQUῲ⇔ਔĆ http://nodejs.org/docs/latest/api/index.html
Copyright © 2012 FITPI. All rights reserved. )FMMP8IP 5
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://f2eclass.com/lab/nodejs/http.js http://localhost:8000 http://nodejs.org/api/http.html#http_http ॹࡹ৫8FCයڛఖĆ
Copyright © 2012 FITPI. All rights reserved. /PEFKTֹ໊֥ 6 ᄝ:BIPP֥ࠎẒℿࡏἧ൞Ⴎ-".1ἧӮ֥
LAMP Linux Apache MySQL PHP ቔ∊༢ⅼ ∉යڛఖ ⊷ਘῠ ᗥ؊ӱൔ∽ /PEFKTϲဆਔ‥⊕࢘aۿି۷ルնĆ
Copyright © 2012 FITPI. All rights reserved. Ⴕ喁ݺẕĤ ๏ ⅼ၂8FCӱൔ∽ğభᗥ؊⇔+4b
❖ ᾞభ؊۽ӱ℩ạ⏟´ఖࢳ٢đᗥ؊၂∄Ⴕି৯ῘứĆ ❖ ॖ০Ⴈ+BWB4DSJQU&WFOUESJWFO֥หྟb ❖ ⏟´ఖἬṅ+BWB4DSJQUಯಖॖၛ+BWB4DSJQU!! ๏ $PNNPO+4ἲữğб⏟´ఖ۷Ⴕἧb ๏ /1.สࡱܵğ٤ӈಸၞν⊬ܵสࡱb ๏ ࠃ≍֥ഠಕb ๏ Ῐứ۷㬪ࠧℭ֥ᅟ∣Ⴈӱൔb 7
Copyright © 2012 FITPI. All rights reserved. $PNNPO+4 8 //
ಁա require ሡ֎෦ JavaScript ࡌೖ var mod = require("./commonjs-module.js"); mod.bar(); http://f2eclass.com/lab/nodejs/commonjs.js > node commonjs.js SFRVJSF≘ೆຓ҆+BWB4DSJQU http://f2eclass.com/lab/nodejs/commonjs-module.js // ฒෆ။ੋશҬᏓᏐ var foo = function () { console.log("foo is invoked"); }; // ॴ༗ཁඃ֎෦ଘऔతํ๏҃ሱੑधཁ༻ exports exports.bar = function () { console.log("bar is invoked"); }; commonjs.js commonjs-module.js ࢳ㢯ਔಆთṉ⅂∻ຓ҆⊷ჷ֥ܵ↜ⅳ
Copyright © 2012 FITPI. All rights reserved. /1.สࡱܵ ๏ /PEFKT1BDLBHF.BOBHFNFOU
๏ ௲ਲğw၂ἠࢳ㢯ٚσб⇧↜↜ⅳὕ؟֥ഠಕx ๏ Ⴈ/PEFKT⇔4IFMM4DSJQUa҆ઋ۬༢ⅼ㢻ݺẕĤ ❖ ॖႨ֥⊷ჷ؟ਔđᾞնն㦆ഒῘứℭᾇĆ 9
Copyright © 2012 FITPI. All rights reserved. Ⴈ-JWF3FMPBE ๏ ଢ仛ẵσ၂ṉọđ∉ࣼᇗྍᆜ
❖ ο$USM '൭ọᇗྍᆜޓ७ ๏ ν⊬/PEFKTϱ֥-JWF3FMPBEයڛఖ OQNJOTUBMMHTJNQMFMJWFSFMPBE ๏ ⬏ọ-JWF3FMPBEයڛఖ DE۽ቔଢ仛 TJNQMFMJWFSFMPBEQPSU ๏ ν⊬-JWF3FMPBE֥ग़㊒؊ (PPHMFෆ⇨o$ISPNF-JWF3FMPBEpࣼᅳ֞ 10 ۋ൳OQN֥ルն∻ٚьĆ
Copyright © 2012 FITPI. All rights reserved. Ⴈ-JWF3FMPBE 11 ẵσႵྩڿ
⏟´ఖ္۷ྍ $ISPNF֥-JWF3FMPBE℟ק යڛఖ ⏟´ఖ ࣋᠃࿈ઢ ᡒ䈕ҊᏓಈฒճใ Ꮕ౸Ꮣಈबॏ৽ࡌೖ <port>
Copyright © 2012 FITPI. All rights reserved. Ⴕ喁ὒẕĤ ๏ ྍਔbὕ҂ⴺ↛קa"1*္ӈᄝ۷ྍb
๏ ∉Ⴕޅྩڿ֤ᇗྍ⊋ྛOPEFFYFb ๏ ၹ㬪၂ἠ+BWB4DSJQU&SSPSࣼ4FSWFS㍂וb ๏ 僯Ⅲẵσẕ҂ၞđ֤թ౼'JMF4ZTUFN"1*b ๏ Ⴕޓ؟٤֥҄ẕč$BMMCBDL1BUUFSO b 12
Copyright © 2012 FITPI. All rights reserved. ၂ἠấ↪ࣼ㍂ו 13 //
ಁա require ሡ֎෦ JavaScript ࡌೖ var mod = require("./commonjs-module.js"); // foo(); // ະఆٛతവࣜʂ foo(); > node commonjs.js // ฒෆ။ੋશҬᏓᏐ var foo = function () { console.log("foo is invoked"); }; // ॴ༗ཁඃ֎෦ଘऔతํ๏҃ሱੑधཁ༻ exports exports.bar = function () { console.log("bar is invoked"); }; commonjs.js commonjs-module.js ஷ֞ໃק∕֥GPPݦൔࣼ৫ख़㍂ו ః֥ӱൔ∽ỉ؟ԛấa҂ಆ҆ඵו
Copyright © 2012 FITPI. All rights reserved. ҂ℳކ僯Ⅲẵσ֥թ౼ 14 http://f2eclass.com/lab/nodejs/html.js
http://f2eclass.com/lab/nodejs/html.html var http = require("http"), fs = require("fs"); // ඞਢ࠾༻ fs.readFile ሡ䈕Ҋᩇೖ fs.readFile("./html.html", function (err, html) { if (err) { throw err; } // ݐཱ Web ث http.createServer(function (request, response) { response.writeHeader(200, { "Content-Type": "text/html" }); response.write(html); response.end(); }).listen(8000); }); html.js > node html.js <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Node.js - ଌࢼท</title> <style type="text/css"> div { background: red; } </style> </head> <body> <div> Hello! ഝੋ Node.js తଌࢼทɻ </div> </body> </html> html.html ၂֊Ϝ8FC4FSWFSఏῲđᄜᄸ喁ڿIUNMIUNM҂ളིb၂קေᇗ⬏Ҍྛb
Copyright © 2012 FITPI. All rights reserved. ࢳ㢯ٚم 15 ๏
⦁ອਔ≾൞ἠޓࠃ≍֥ഠ⃯đ၂ἠ↜ⅳ ᇀഒႵἠၛഈ֥ࢳճ ❖ node-server https://github.com/cloudhead/node-static ❖ QBQFSCPZ https://github.com/felixge/node-paperboy ❖ IUUQTFSWFS https://github.com/nodeapps/http-server
Copyright © 2012 FITPI. All rights reserved. 16 ≾൞၂ἠޓྍ֥wӱൔ∽ යڛఖxđ↜ⅳ൞ޓ
؟֥đ൞Ⴎᧄࠃ≍֥ഠಕaࢳճ္ԛެམཞֹ ؟b ㍇ႨՎℿቔ㬪Ῐứđु֞⇝؟ቋྍ֥ۀ đℭ္с⇜҂ỗֹಀ૫Ớ↜ⅳaЯ௧ሱ࠭҂ ỗ4UVEZđ൞ޓႵ็≳ྟ֥b ၛ/PEFKT֥Чദ∽หྟ∻༵฿∱ྮ֥ࡏἧđ сק൞ໃῲέ୍⤨ቋᇗေ֥ӱൔ∽ᆭ၂đ൞ޓᆴ ֤ℭᾇ⊷֥b OPEFࢺℚཬ
Copyright © 2012 FITPI. All rights reserved. 17 ၛ/PEFῘứℂⅴ /PEFKT҂ᆺିႨῲῘứᅟཌྷἬӱൔ
∄္ॖၛ⇔ԛޓ؟ݺႨ֥۽ऎℂⅴ ၹഠಕࠃ≍1BDLBHFӑ؟ Ⴈ+BWB4DSJQUῘứℂⅴၘῂໄ㬪၂⊕ἀӖਔ ଢభն؟ὕᄝ$PNNBOE-JOF-FWFM
Copyright © 2012 FITPI. All rights reserved. ࡹ৫"1*໓ࡱ ๏ "1*໓ࡱğạჰ֥䩏ࢳčႵหקἲữĎ㸗ԛ໓
ࡱđ❣҂൞喁ྍỌ༆ %PYZHFO 1)1%PD b ๏ ٚьఃῘứᆀႨ֥ჭࡱaਔࢳۿିb ๏ :6*㸗ള໓ࡱࢥႨ၂ἠࢡ:6*%PD֥۽ऎb ❖ Ⴈ/PEFKT෮Ῐứ֥đν⊬⃪ႨOQNJOTUBMMHZVJEPDKT ๏ ༯≘၂ٺႵ䩏ࢳ֥ჰ HJUDMPOFHJUHJUIVCDPNNJJJDBTBTDSPMMQBHJOBUJPOHJU ๏ 㸗ԛ"1*໓ࡱ DETDSPMMQBHJOBUJPO ZVJEPD 18
Copyright © 2012 FITPI. All rights reserved. Ⴈ-JWF3FMPBE 19 ẵσႵྩڿ
⏟´ఖ္۷ྍ $ISPNF֥-JWF3FMPBE℟ק යڛఖ ⏟´ఖ ࣋᠃࿈ઢ ᡒ䈕ҊᏓಈฒճใ Ꮕ౸Ꮣಈबॏ৽ࡌೖ <port>
Copyright © 2012 FITPI. All rights reserved. 20 8FCࠧℭ๙⇫ Ἶಀa⇀ᄝaໃῲ֥έ⊕ቔم
ቋܞa҂ⴺࠧℭaۄ؇ޓ֥ۚ฿൩ ֞ቋ࣍ᖁশa‟ℼޓࠧℭੀṹ֥๙ᆩ ⁿ۲ሱ൞Ⴈ喁ჰẦӮ֥Ĥ ≾ถਔࢳჰaႄႨ⇀Ӯ۽ऎ ໃῲࣼॖၛ⃦⅌Ῐứ8FC֥ࠧℭ⇫༏ਔĆ
Copyright © 2012 FITPI. All rights reserved. 21 അ্݁ଋ http://www.slideshare.net/amix3k/comet-with-nodejs-and-v8
ٻอཹॅ ༗ࢿྉ࠶ճၚ Ꮧᎃ࠶ᚙ৽త ٻӬԕอ࣋ લၷछ༗Մೳ࿙ਜଉ ⁛⇧1PMMJOH
Copyright © 2012 FITPI. All rights reserved. ⁛⇧1PMMJOH 22 ҂ỗֹཟයڛఖứෂ⃪đ⇧↜൞ڎႵྍ⇫༏
http://f2eclass.com/lab/node/polling.html යڛఖ֥Ἄẩğ⃪⅂ਈἾ؟
Copyright © 2012 FITPI. All rights reserved. ṵℭᾇ֥1PMMJOH 23 ҂ỗֹཟයڛఖứෂ⃪đ⇧↜൞ڎႵྍ⇫༏
යڛఖ֥Ἄẩğ⃪⅂ਈಯ؟aط’䍛ℭᾇṵ http://f2eclass.com/lab/node/long-polling.html
Copyright © 2012 FITPI. All rights reserved. 24
Copyright © 2012 FITPI. All rights reserved. 25
Copyright © 2012 FITPI. All rights reserved. 26 ‥⊕1PMMJOH൞Ẫཟ֥ğ Ⴎ#SPXTFSཟ4FSWFS⇧↜൞ڎႵྍ⇫༏
QVMM ط٤Ⴕྍ⇫༏ࣼႮ4FSWFSཟ#SPXTFS QVTI -POHQPMMJOHᄝẖⅼཞ൞"QBDIF֥ᅟයڛఖ ൞٤ӈӹὸ∔ⅴ֥đቋݺὕ൞㍇ႨOHJOYࠇOPEF Ἤᧄ⁛⇧
Copyright © 2012 FITPI. All rights reserved. 8FC4PDLFU 27 ࡹ৫⅄ཟ๙֡
Ⴕ⊷ਘ֥ℭީҌཌྷẖẾđིିቋݺ֥ቔمĆ http://f2eclass.com/lab/node/websocket.html
Copyright © 2012 FITPI. All rights reserved. ࠧℭ๙⇫ཬ 28 8FC4PDLFU൞)5.-෮ầῲ֥ྍ⇐קđ⏟´ఖ
ℯቔ҂၂đ෮ၛ㢻ḰمṂఃۿᧄ၂ၢbⁿಯ֤⊀ Ớᾱҵ֥⏟´ఖ㍇Ⴈ-POHQPMMJOHaമᇀ㍇ႨἾ؈ ℭ௹֥'MBTI8FC4PDLFUb ေु⏟´ఖᆦჱ؇∻൞ڎν⊬'MBTIaℯቔ-POH QPMMJOH 'MBTI8FC4PDLFU 8FC4PDLFUčభᗥ؊ ေڿĎđ≾္ྌ७ਔϔĆ
Copyright © 2012 FITPI. All rights reserved. ቋࡄࢳ㢯ٚσĆ 29 http://socket.io/
4PDLFUJP္൞/PEFKT֥၂ἠสࡱ ॖၛሱྛ⊁Ṧ⏟´ఖὔa㢯קေ㍇Ⴈޅ⊕ٚσ ֥ӱൔᆺေ⇔၂ٺࣼॖၛঝ%
Copyright © 2012 FITPI. All rights reserved. ᄝ҂⏟´ఖ⊋ྛ 30 http://f2eclass.com/lab/node/socket-io.js
Ἥҳुु⏟´ఖ൞㍇Ⴈޅ⊕ٚم౼֤ྍ⇫༏֥b
Copyright © 2012 FITPI. All rights reserved. ℯቔᅶோᅟ֥๙ᆩ 31 ằႵದഈẖਔ၂≵ྍᅶோ
ఃᆞᄝ䍛ഈ֥ದି൬֞๙ᆩ http://f2eclass.com/lab/node/notification.js
Copyright © 2012 FITPI. All rights reserved. ཌྷἬ⊷ჷ 32 ๏
ܥקऊğ/PEFKT5BJXBO1BSUZ IUUQOPEFKTUX ๏ /PEFKT↉ഠಕ⇐ቔểሰℼ IUUQCPPLOPEFKTUX ๏ $/PEF/PEFKTህြᇏ໓ഠ⃯ IUUQDOPEFKTPSH ๏ /PEF1BDLBHFE.PEVMFT IUUQTOQNKTPSH
Copyright © 2012 FITPI. All rights reserved. 33 Q &
A