Let s Enjoy Node.js
-
Upload
fred-chien -
Category
Technology
-
view
7.147 -
download
2
description
Transcript of Let s Enjoy Node.js
![Page 1: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/1.jpg)
Let's Enjoy Node.jsLet's Enjoy Node.jsAll in JavaScript
Fred Chien
![Page 2: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/2.jpg)
Enjoy Trip With 2 Rules
旅程將啟,兩點規則
![Page 3: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/3.jpg)
1Buckle Up!
請繫安全帶!
![Page 4: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/4.jpg)
DO NOT KICK MY ASS!請你的朋友不要打我的頭!
2
![Page 5: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/5.jpg)
說好不打臉的!說好喔!
![Page 6: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/6.jpg)
WHO AM I ?
我是誰?
![Page 7: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/7.jpg)
Fred Chien錢逢祥
永遠的大四生
![Page 8: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/8.jpg)
Fred Chien錢逢祥
永遠的大四生
![Page 9: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/9.jpg)
Fred Chien錢逢祥
宅宅水電工
![Page 10: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/10.jpg)
慾火焚身的男人
![Page 11: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/11.jpg)
fred-zone.blogspot.com
cfsghost @ gmail.com
![Page 12: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/12.jpg)
JavaScript大調查
![Page 13: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/13.jpg)
Web 開發者共同的迷思
底層難!Porting 難!神人!大牛!
![Page 14: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/14.jpg)
共同的夢想JavaScript 成為海賊王!!!
![Page 15: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/15.jpg)
JavaScriptIs NOT Browser-side Language Anymore
是否不再只是瀏覽器端語言?
![Page 16: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/16.jpg)
橡膠果實使一切成為可能
![Page 17: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/17.jpg)
Run JavaScript without Browser
不需要瀏覽器的 JavaScript
![Page 18: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/18.jpg)
Old School JavaScript
![Page 19: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/19.jpg)
Without Browser
![Page 20: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/20.jpg)
With Node.js
![Page 21: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/21.jpg)
More Third-party Modules
![Page 22: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/22.jpg)
More Supports
![Page 23: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/23.jpg)
換句話說In other words
![Page 24: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/24.jpg)
Enjoy JavaScriptEnjoy It
![Page 25: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/25.jpg)
Server-side Development
開發後端應用
![Page 26: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/26.jpg)
PHP/Perl/Python/JSP/ASP...
開發後端應用
![Page 27: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/27.jpg)
System Development
開發系統程式
![Page 28: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/28.jpg)
Services/Daemon/Syscall...etc
控制作業系統的一切
![Page 29: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/29.jpg)
更進一步Even More
![Page 30: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/30.jpg)
All Development
開發一切應用
![Page 31: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/31.jpg)
About node.js
● Stable version is 0.6.15● Support platforms:
○MS Windows○Mac OS X○Linux○FreeBSD
![Page 32: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/32.jpg)
node.js Features
● Based on V8 JavaScript Engine (With JIT)
● Stand-alone (Without Web Browser)
● Event-driven
● Non-blocking I/O model
![Page 33: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/33.jpg)
● Extending with C/C++
● Support Multi-core Systems
● Provide Buffer Class○ Solve 1.9GB heap limit of V8○ Nice to binary data
More Good Things Come
![Page 34: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/34.jpg)
● Thousands of Concurrent Connections ● Minimal Overhead (CPU/Memory) on a
singal process
Great Performance on Server
![Page 35: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/35.jpg)
Hello World快速試看看
![Page 36: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/36.jpg)
Hello World! (helloworld.js)
var http = require('http');
http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n');}).listen(10000);
console.log('Server running at http://localhost:10000/');
![Page 37: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/37.jpg)
Run It!
$ node ./helloworld.jsServer running at http://localhost:10000/
![Page 38: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/38.jpg)
Cluster Support (cluster.js)var cluster = require('cluster');var http = require('http');var numCPUs = require('os').cpus().length;
if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork(); }
cluster.on('death', function(worker) { console.log('worker ' + worker.pid + ' died'); });} else { // Worker processes have a http server. http.Server(function(req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(8000);}
![Page 39: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/39.jpg)
Run It!
$ node ./cluster.jsWorker 18394 onlineWorker 18393 online
![Page 40: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/40.jpg)
MongoDB Support (mongodb.js)var mongodb = require('mongodb');var server = new mongodb.Server('localhost', 27017);var db = new mongodb.Db('mydb', server);
/* open db */db.open(function() {
/* Select 'contact' collection */ db.collection('contact', function(err, collection) {
/* Querying (name == 'Fred Chien') */ collection.find({ name: 'Fred Chien' }, function(err, data) { console.log('Name: ' + data.name + ', email: ' + data.email); });
});
});
![Page 42: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/42.jpg)
Write a XMPP Server (xmppsrv.js)var xmpp = require('node-xmpp');
var c2s = new xmpp.C2S({ port: 5222, domain: 'example.com'});
c2s.on("authenticate", function(jid, password, client) { if (password == "12345678") { client.emit("auth-success", jid); } else { client.emit("auth-fail", jid); }});
console.log('My XMPP Server was running at localhost:5222');
![Page 43: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/43.jpg)
Run It!
$ node ./xmppsrv.jsMy XMPP Server was running at localhost:5222
![Page 44: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/44.jpg)
Node.js Modules你可以抓到更多的模組
![Page 45: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/45.jpg)
NPMNode Package Manager
![Page 46: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/46.jpg)
![Page 47: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/47.jpg)
8844+Large Amount of Module
![Page 48: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/48.jpg)
Get Modules with NPM
$ npm install mongodb$ npm install node-xmpp
![Page 49: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/49.jpg)
References
●Node.js Official Website:http://nodejs.org/
●NPM Official Website:http://npmjs.org/
![Page 50: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/50.jpg)
Community in Taiwan
● Node.js Taiwanhttp://nodejs.tw/
● Facebook Fans Page# NodeJS.tw
● Node.js Taiwan Party in TaipeiOnce Every other Thursday
![Page 51: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/51.jpg)
總結來說...Anyway...
![Page 52: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/52.jpg)
前端開發者走入後端
一種語言前後都可玩
![Page 53: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/53.jpg)
Web開發者
將實現夢想
寫系統程式啦
![Page 54: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/54.jpg)
低階程式讓專業的來
用 Node.js C/C++ Addon 打通硬體和系統的任督二脈
![Page 55: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/55.jpg)
JSer 只要專心惡搞
仍然不需要管底層的事
![Page 56: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/56.jpg)
大秘寶就是我們的!
我是海賊王!
![Page 57: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/57.jpg)
Question?提問?
![Page 58: Let s Enjoy Node.js](https://reader033.fdocuments.net/reader033/viewer/2022052823/5555d2afd8b42a711f8b4aeb/html5/thumbnails/58.jpg)
Thanks感謝您的耐心耹聽