SlideShare una empresa de Scribd logo
1 de 81
瞭解NodeJS開發技術 by Fillano
課程主要內容 NodeJS的背景知識 如何撰寫NodeJS程式 幾個codeexample展示與說明 在Windows環境中執行NodeJS 如何找到更多資源
NodeJS的背景知識 作者、Javascript、V8及其它
什麼是NodeJS 它主要是一個伺服器端的Javascript環境 它提供了符合CommonJS1.0規格的模組機制,擴充功能非方便 只要能使用模組來擴充功能,實際使用上並不限於伺服器程式
什麼是NodeJS 舊瓶裝新酒 1996–NetscapeLivewireinNetscapeEnterpriseServer ASPwithJscript,Jscript.NET MozillaRhino Flowscript for Apache Cocoon 2.1 JavascriptWebflow for Spring Helma (http://helma.org) RingoJS(http://ringojs.org/)
什麼是NodeJS 舊瓶裝新酒 MozillaSpiderMonkey AptanaJaxer(http://jaxer.org/) couchDB (RESTful API) GoogleV8 v8cgi(http://code.google.com/p/v8cgi/) v8juice(http://code.google.com/p/v8-juice/) wikipedia: Comparison of server-side JavaScript solutions
什麼是NodeJS 全新的生命力 ,[object Object]
類似v8juice與jslib(http://jslib.mozdev.org/)
接下來會談到的成功因素,[object Object]
vsphp (benchmarking nodejs basic performance tests against apache-php)
vsruby(express vs sinatra benchmarks)
vsringojs(RingoJS vs. Node.js: Runtime Values),[object Object]
AST:將Javascript剖析成抽象語法樹
GenericCodeGen:直接產生尚未最佳化的機器碼執行
目前使用的最佳化技術Cranshaft
執行時期追蹤與Profiling
將型別資訊紀錄在相關AST節點中
OptimizedCodeGen
四階段最佳化,產生可利用暫存器存放變數的機器碼,[object Object],[object Object]
輪詢:每隔一段時間詢問系統是否有結果
遍歷:走訪每一個要監聽的檔案與網路port,[object Object]
Linux:epoll
BSD:kqueue
Windows, Solaris:IOCP (I/O Completion Port),[object Object]
Eventloops(event-machine, gearman…)
Responsetimehistorgram,[object Object]
EY Load Balancer module for Nginx,[object Object]
Python:Twisted但是都不能滿意,在GoogleV8Engine發表後,決定自己寫一個: ,[object Object]
Crockford曾說:這是Javascript發展過程的一個重要案例,會影響未來ECMA-262規格的制定,[object Object]
哪裡可以找到NodeJS http://nodejs.org ,[object Object]
最新版本的Windows可執行檔下載
最新版本的API文件http://github.com/joynet/node ,[object Object]
wiki:重點-如何在不同作業系統中編譯NodeJS
IssueTracker,[object Object]
(列表中有一些是提供NodeJSHosting服務的公司,他們自己也利用NodeJS開發相關管理方案,例如nodejitsu),[object Object]
使用NodeJS的時機快速反應! 單一執行緒與eventloop ,[object Object]
所有事件都是在一個eventloop依序執行
所以反應速度還是會隨著連線數上昇而逐漸下降解決方法 ,[object Object]
新版的V8引擎可以支援一個行程多個instance,[object Object]
支援child_process
支援IOCP
可動態載入的原生模組
其它
支援VisualC++
之前只能在Cygwin及MSYS環境中編譯
v0.5.6將可以在VisualC++Express正確編譯,[object Object]
支援MicrosoftWindows的I/OCompletionPort機制
讓NodeJS抽換掉對於libeio,libevent,libev等的直接依賴
在Windows環境中可使用VisualC++編譯,[object Object]
最簡單的程式範例helloworld伺服器 一頁就放的下的程式 var http = require('http'); http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World.'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');
最簡單的程式範例helloworld加上ExpressFramework 一頁就放的下的程式 var express = reuqire('express'), app=express.createServer(); app.get('/',function(req,res){ res.send('Hello World.'); }); app.listen(3000);
Javascript背景知識伺服器端的Javascript 與瀏覽器中有什麼不同? ,[object Object]
Global提供的環境不一樣其它地方大同小異 ,[object Object]
以NodeJS來說,大量使用非同步的執行方式,但是與在瀏覽器中事件與非同步的寫法也差不多,[object Object]
Javascript背景知識eventloop Javascript程式的LifeCycle ,[object Object]
接下來,用eventloop的方式執行所有事件函數,直到結束
如果在瀏覽器中,可以利用動態新增script tag的方式,再次執行載入的script中GlobalContext中的程式碼,不過在NodeJS不會有這個狀況發生
所以,大部份時間可能都是在執行函數,[object Object]
共用的變數不需鎖定,程式結構簡單缺點 ,[object Object]
無法把負載分散到不同的CPU解決方法(以NodeJS為例) ,[object Object]
Intel的計畫,讓Javascript可以在多核心環境中進行平行處理
https://github.com/RiverTrail/RiverTrail
目前只支援Firefox,[object Object]
Javascript背景知識事件與callback函數 在瀏覽器中,通常很少超過兩層 varelem=document.getElementById(‘target’); elem.addEventListener(‘click’,function(e){ req.onreadystatechange=function(){ 	if(this.readyState===4&&this.status===200){ varthat=this; window.setTimeout(function(){ 			alert(that.responseTest) 		},500) 		} } },false);
Javascript背景知識事件與callback函數 在NodeJS環境中,有非常多的操作是用callback來完成,例如這一段mongo db的範例 varp_client = new Db('integration_tests_20', new Server("127.0.0.1", 27017, {}), {'pk':CustomPKFactory}); p_client.open(function(err, p_client) { p_client.dropDatabase(function(err, done) { p_client.createCollection('test_custom_key', function(err, collection) { collection.insert({'a':1}, function(err, docs) { collection.find({'_id':newObjectID("aaaaaaaaaaaa")}, function(err, cursor) { cursor.toArray(function(err, items) { test.assertEquals(1, items.length); p_client.close(); });});});});});});
Javascript背景知識事件與callback函數 為什麼會出現這麼多層的callbacks? ,[object Object]
所以常常在callbacks中使用其他功能,就需要另外加一層callbacks
在許多功能需要循序執行時,就需要在callbacks中使用下一個步驟的功能,這些還是需要callbacks來完成,[object Object]
不容易做單元測試解決方式 ,[object Object]
不要用匿名函數做callbacks,這樣對它做單元測試就比較容易,[object Object]
利用立即執行的匿名函數,把在Global Scope執行的程式包裝起來
不過只要好好使用模組,在NodeJS這不是大問題簡單的性能策略 ,[object Object]
需要花時間處理的程式,可以切割成數個函數,利用process.nextTick()非同步執行,[object Object]
某些操作在Javascript中並沒有非同步執行的版本,例如JSON.parse/stringify,而這些操作比較花時間。這時可以找一找是否有人實作非同步的版本(模組)
例如: https://github.com/dominictarr/JSONStream,[object Object]
某些Javascript函數,無法最佳化,所以使用到的話…
例如:用Array.prototype.slice.call(arguments,1)來把arguments轉換成陣列就比for(var i=0; i<arguments.length; i++)慢,因為後者可以最佳化,[object Object]
需要預先安裝Python及GCC4.0以上
在nodejs.org網站取得原始碼
解開後依序執行./configure、make
需要安裝到系統中時,執行make install,[object Object]

Más contenido relacionado

La actualidad más candente

前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具國昭 張
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 GradleJustin Lin
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討國昭 張
 
D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版Jackson Tian
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發Fred Chien
 
用最潮的 Java script 盡情開發 kde qt 程式
用最潮的 Java script 盡情開發 kde qt 程式用最潮的 Java script 盡情開發 kde qt 程式
用最潮的 Java script 盡情開發 kde qt 程式Fred Chien
 
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!Fred Chien
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統Hsu Ping Feng
 
不一樣的Web server... coServ
不一樣的Web server... coServ不一樣的Web server... coServ
不一樣的Web server... coServBen Lue
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Joseph Chiang
 
Spock:願你的測試長長久久、生生不息
Spock:願你的測試長長久久、生生不息Spock:願你的測試長長久久、生生不息
Spock:願你的測試長長久久、生生不息Shihpeng Lin
 
Browser vs. Node.js Jackson Tian Shanghai
Browser vs. Node.js   Jackson Tian ShanghaiBrowser vs. Node.js   Jackson Tian Shanghai
Browser vs. Node.js Jackson Tian ShanghaiJackson Tian
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹wantingj
 
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)Will Huang
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automationIvan Wei
 
再生龍於雲端環境之應用
再生龍於雲端環境之應用再生龍於雲端環境之應用
再生龍於雲端環境之應用Chenkai Sun
 
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式Will Huang
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探仲昀 王
 

La actualidad más candente (20)

前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討
 
D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
 
用最潮的 Java script 盡情開發 kde qt 程式
用最潮的 Java script 盡情開發 kde qt 程式用最潮的 Java script 盡情開發 kde qt 程式
用最潮的 Java script 盡情開發 kde qt 程式
 
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
 
Node分享 展烨
Node分享 展烨Node分享 展烨
Node分享 展烨
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
 
不一樣的Web server... coServ
不一樣的Web server... coServ不一樣的Web server... coServ
不一樣的Web server... coServ
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
 
Spock:願你的測試長長久久、生生不息
Spock:願你的測試長長久久、生生不息Spock:願你的測試長長久久、生生不息
Spock:願你的測試長長久久、生生不息
 
Browser vs. Node.js Jackson Tian Shanghai
Browser vs. Node.js   Jackson Tian ShanghaiBrowser vs. Node.js   Jackson Tian Shanghai
Browser vs. Node.js Jackson Tian Shanghai
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
 
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automation
 
Docker實務
Docker實務Docker實務
Docker實務
 
再生龍於雲端環境之應用
再生龍於雲端環境之應用再生龍於雲端環境之應用
再生龍於雲端環境之應用
 
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
 

Destacado

Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?Dinh Pham
 
Microservices and Seneca at RomaJS group
Microservices and Seneca at RomaJS groupMicroservices and Seneca at RomaJS group
Microservices and Seneca at RomaJS groupLuca Lanziani
 
Node Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineNode Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineShubhra Kar
 
The Seneca Pattern at EngineYard Distill 2013 Conference
The Seneca Pattern at EngineYard Distill 2013 ConferenceThe Seneca Pattern at EngineYard Distill 2013 Conference
The Seneca Pattern at EngineYard Distill 2013 ConferenceRichard Rodger
 
Introducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.jsIntroducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.jsRichard Rodger
 
Writing Test Cases with PHPUnit
Writing Test Cases with PHPUnitWriting Test Cases with PHPUnit
Writing Test Cases with PHPUnitShouvik Chatterjee
 
NodeJS Microservices, Built it Now, Scale it Later!
NodeJS Microservices, Built it Now, Scale it Later!NodeJS Microservices, Built it Now, Scale it Later!
NodeJS Microservices, Built it Now, Scale it Later!Lalit Shandilya
 
Richard rodger technical debt - web summit 2013
Richard rodger   technical debt - web summit 2013Richard rodger   technical debt - web summit 2013
Richard rodger technical debt - web summit 2013Richard Rodger
 
JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, DhakaJavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, DhakaNurul Ferdous
 
How to scale and deploy NodeJS app
How to scale and deploy NodeJS appHow to scale and deploy NodeJS app
How to scale and deploy NodeJS appYacobus Reinhart
 
NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0Dinis Cruz
 
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Valeri Karpov
 
Java script at backend nodejs
Java script at backend   nodejsJava script at backend   nodejs
Java script at backend nodejsAmit Thakkar
 
High Performance NodeJS
High Performance NodeJSHigh Performance NodeJS
High Performance NodeJSDicoding
 
NodeJS - Server Side JS
NodeJS - Server Side JS NodeJS - Server Side JS
NodeJS - Server Side JS Ganesh Kondal
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Steve Pember
 

Destacado (20)

Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?
 
Microservices and Seneca at RomaJS group
Microservices and Seneca at RomaJS groupMicroservices and Seneca at RomaJS group
Microservices and Seneca at RomaJS group
 
Node Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineNode Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshine
 
The Seneca Pattern at EngineYard Distill 2013 Conference
The Seneca Pattern at EngineYard Distill 2013 ConferenceThe Seneca Pattern at EngineYard Distill 2013 Conference
The Seneca Pattern at EngineYard Distill 2013 Conference
 
Introducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.jsIntroducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.js
 
Writing Test Cases with PHPUnit
Writing Test Cases with PHPUnitWriting Test Cases with PHPUnit
Writing Test Cases with PHPUnit
 
NodeJS Microservices, Built it Now, Scale it Later!
NodeJS Microservices, Built it Now, Scale it Later!NodeJS Microservices, Built it Now, Scale it Later!
NodeJS Microservices, Built it Now, Scale it Later!
 
Richard rodger technical debt - web summit 2013
Richard rodger   technical debt - web summit 2013Richard rodger   technical debt - web summit 2013
Richard rodger technical debt - web summit 2013
 
NodeJS
NodeJSNodeJS
NodeJS
 
JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, DhakaJavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
 
Nodejs in Production
Nodejs in ProductionNodejs in Production
Nodejs in Production
 
Building Web Apps & APIs With Node JS
Building Web Apps & APIs With Node JSBuilding Web Apps & APIs With Node JS
Building Web Apps & APIs With Node JS
 
How to scale and deploy NodeJS app
How to scale and deploy NodeJS appHow to scale and deploy NodeJS app
How to scale and deploy NodeJS app
 
NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0
 
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
 
Java script at backend nodejs
Java script at backend   nodejsJava script at backend   nodejs
Java script at backend nodejs
 
High Performance NodeJS
High Performance NodeJSHigh Performance NodeJS
High Performance NodeJS
 
Testing NodeJS Security
Testing NodeJS SecurityTesting NodeJS Security
Testing NodeJS Security
 
NodeJS - Server Side JS
NodeJS - Server Side JS NodeJS - Server Side JS
NodeJS - Server Side JS
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...
 

Similar a All about NodeJS

猴子也能懂的Node.js
猴子也能懂的Node.js猴子也能懂的Node.js
猴子也能懂的Node.jsHopenglishRD
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJSTechParty@UIC
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node jsXuefeng Zhang
 
Nodejs部门分享
Nodejs部门分享Nodejs部门分享
Nodejs部门分享zffl
 
51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundry51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundryHong Cai
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2twMVC
 
twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC
 
NODEjs Lesson1
NODEjs Lesson1NODEjs Lesson1
NODEjs Lesson13dmodeldiy
 
Js高级技巧
Js高级技巧Js高级技巧
Js高级技巧fool2fish
 
Node js feat pegasus
Node js feat pegasusNode js feat pegasus
Node js feat pegasuscnfi
 
这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkitLainZQ
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿Liu Allen
 
Nodejs api server_implement
Nodejs api server_implementNodejs api server_implement
Nodejs api server_implementChi-wen Sun
 
React Native + Redux
React Native + ReduxReact Native + Redux
React Native + ReduxCh Rick
 
Lab01 cloud project
Lab01 cloud projectLab01 cloud project
Lab01 cloud projectJeff Chu
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Gelis Wu
 
Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Gelis Wu
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲ArBing Xie
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型裕波 周
 

Similar a All about NodeJS (20)

猴子也能懂的Node.js
猴子也能懂的Node.js猴子也能懂的Node.js
猴子也能懂的Node.js
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 
Nodejs部门分享
Nodejs部门分享Nodejs部门分享
Nodejs部门分享
 
51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundry51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundry
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2
 
twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有
 
J S教材
J S教材J S教材
J S教材
 
NODEjs Lesson1
NODEjs Lesson1NODEjs Lesson1
NODEjs Lesson1
 
Js高级技巧
Js高级技巧Js高级技巧
Js高级技巧
 
Node js feat pegasus
Node js feat pegasusNode js feat pegasus
Node js feat pegasus
 
这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿
 
Nodejs api server_implement
Nodejs api server_implementNodejs api server_implement
Nodejs api server_implement
 
React Native + Redux
React Native + ReduxReact Native + Redux
React Native + Redux
 
Lab01 cloud project
Lab01 cloud projectLab01 cloud project
Lab01 cloud project
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
 
Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Asp.net 5 新功能與變革
Asp.net 5 新功能與變革
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 

All about NodeJS