天天看點

nodejs系列(1)起步什麼是Node.js?Node.js的子產品化概念Node.js開發環境準備第一個Node.js應用:Hello World

什麼是Node.js?

node.js是一個Javascript運作環境,是一個基于Chrome JavaScript運作時建立的平台, 用于友善地搭建響應速度快、易于擴充的網絡應用。node.js依賴于Chrome V8引擎(V8使用C++開發,可以将Javascript編譯成原生機器碼),使用事件驅動,非阻塞I/O 模型而得以輕量和高效,非常适合在分布式裝置上運作資料密集型的實時應用,它還對一些特殊用例進行優化,提供替代的API,使得V8在非浏覽器環境下運作得更好。簡單來說,node.js就是前端架構,背景語言,通過js語言實作服務端的搭建。

Node.js的子產品化概念

node.js使用Module子產品去劃分不同的功能,目的是簡化應用的開發。Modules子產品有點像C++語言中的類庫。每一個node.js的類庫都包含了十分豐富的功能函數,比如http子產品就包含了可以幫助開發者便捷地對http,tcp/udp等進行操作,還可以很容易 地建立http和tcp/udp的伺服器。node.js已經内置了一批常用的子產品,可以通過官網中的線上文檔檢視,還有一些第三方子產品可以使用npm引用。

Node.js開發環境準備

進入官網下載下傳頁:http://nodejs.cn/download/,下載下傳Windows系統 (.msi)版本,輕按兩下安裝即可。安裝成功後,可進入DOS環境下,輸入以下指令檢測是否安裝成功:

$ node -v
           

如能正确顯示版本号,則表明安裝成功。由于國内外網絡限制,為了友善使用npm連結(用于安裝node.js的相關類庫),一般我們還需安裝npm的淘寶鏡像cnpm,安裝指令如下:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
           

至此,node.js開發環境準備完成。

第一個Node.js應用:Hello World

建立一個server.js檔案,檔案代碼如下:

var http = require('http');
http.createServer(function(request, response) {
	// 發送 HTTP 頭部 
	// HTTP 狀态值: 200 : OK
	// 内容類型: text/plain
	response.writeHead(200, {
		'Content-Type': 'text/plain;charset=utf-8'
	});
	// 發送響應資料
	response.end('大家好 Hello World');
}).listen(8081);

// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:8081/');
           

進入到該檔案的相應目錄下,通過執行指令啟動檔案:

$ node server.js
           

執行完成如圖所示:

nodejs系列(1)起步什麼是Node.js?Node.js的子產品化概念Node.js開發環境準備第一個Node.js應用:Hello World

打開浏覽器,輸入網址:http://127.0.0.1:8081/,可以看見:大家好 Hello World。恭喜您,第一個node服務已經搭建起來。

從上例中我們需要了解到兩個知識點:

(1)node.js通過使用http.createServer這個方法來搭建一個服務,該功能作用類似于Tomcat。

(2)使用response.end方法來将服務端資料傳回前端,并且一定需要response.writeHead寫入頭部檔案屬性“Content-Type”,該屬性的作用在于告訴前端該資料的具體類型,類型有可能是文本、html頁面、js檔案、css檔案、圖檔、視訊、音頻、json、xml等。

我們也可以通過以下代碼自動擷取引入檔案的類型:

var mime = require('mime');
var pathname = url.parse(request.url).pathname;
var contenttype = mime.getType(pathname.substr(1));
response.writeHead(200, {
	'Content-type': contenttype
});
           

mime子產品通過cnpm引入即可,引入指令 $ cnpm install mime。

經驗分享:在實際搭建web服務開發過程中,我們并不需要這麼麻煩。開發node項目,通常會使用第三方庫Express架構,它幫助我們解決了大量類似的繁瑣需求,Express架構将會在下篇中詳細介紹。建議學習node.js,都從熟悉Express架構開始。

繼續閱讀