Nodejs系列-1

1.Nodejs是什麼?

Node.js不是一種獨立的語言,與php即是語言也是平臺不同,也不是javascript的框架更不是瀏覽器的庫,不能與Extjs相提並論。Node.js是一個讓javascript運行在服務端的開發平臺。

2.Node.js能做什麼?

1、javascript是爲客戶端而產生的,Node.js是爲服務端(網絡)而生的。

2、適合具有複雜邏輯的網站

3、基於社交網絡的大Web的應用

4、Web socket服務器

基於TCP的雙向的,全雙工的數據連接

雙向:客戶端、服務器端

全雙工:數據的發送與接收,兩者同步進行

建立socket應用

服務器必須支持web socket

nodejs

5、TCP/UDP套接字應用程序

6、命令行工具

7、交互式終端程序

3、Node.js最大的特性就是採用異步式I/O與事件驅動的框架設計

傳統的框架是多線程模型,也就是爲每個業務邏輯提供一個系統線程,通過系統線程切換來彌補同步式I/O調用時的時間開銷。

Node.js使用的單線程模型,在執行的過程中會維護一個事件隊列,程序在執行時在進入時間循環等待下一個事件到來

普通:

<span style="font-size:14px;">res=db.query('select * from user');
res.output();</span>
Node.js:

<span style="font-size:14px;">res = dbquery('select * from user',function(res){
    res.output();
});</span>
程序會自動往下執行

4.瀏覽器引擎革命

Google Chrome引擎是V8(最快的引擎)。Nodejs的引擎引用的就是V8,所以,爲什麼ExtJs在Chrome如此的快,就以爲如此。

5.

node -v 版本

node -e (即eval ) 把字符串直接當爲js代碼執行

node  編譯模式(直接編譯js代碼)

3.建立HTTP服務器(這裏是最簡單的例子)

<span style="font-size:14px;">var http = require('http');   //建立http服務
var serv = http.createServer(function(req, res) {  //調用createServer方法
	console.log('有人進來了');
	
	/*res.writeHeader(200, {
		'content-type' : 'text/html;charset="utf-8"'
	});*/
	
	res.writeHeader(404, {
		'content-type' : 'text/html;charset="utf-8"'
	});
	
	//res.write('這是正文');
	res.write('你所訪問的資源不存在');
	res.end();
}).listen(8888);
console.log('服務器開啓成功');</span>
4.好用的工具supervisor

npm install supervisor -g (npm安裝包自動安裝,不多說)

最後小結一下同步I/O與異步I/O的區別:

同步式I/O:異步式I/O:

利用多線程提供吞吐量 單線程即可實現高吞吐量

通過事件片分割和線程調度利用多核CPU通過功能劃分利用多核

需要有操作系統調度多線程使用多核CPU可以將單線程綁定到單核CPU

難以充分利用CPU資源 可以充分利用CPU資源

內存軌跡大,數據局部性弱 內存軌跡小,數據局部性強

符合線性的編程思維 不符合傳統編程思維


以上爲個人觀點,如有不對,歡迎指出!

純屬手打,轉載請標明出處!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章