簡介
Node.js 是 Ryan Dahl 基於 Google 的 V8 引擎於 2009 年釋出的一個 JavaScript 開發平台,主要聚焦於 Web 程式的開發,通常用被來寫網站。以往大家都學過PHP、Python 和 Ruby 等的腳本語言一樣,需要有 Web Server 才能寫出 Web 程式,Node.js 透過模組的支援,Node.js 自己就可以寫出Web Server並且可以控制它的行為與運作方式,甚至還可以針對不同的功能用不同Port來建立多個服務,看起來是不是不錯,接下來繼續講Node.js的優點。
優點
高效能
因為 Node.js 採用「非同步式 I/O」的方式,所以,不會因為硬體設備的延遲而造成程式因為需要等待回應而影響到程式的執行,因此,執行速度較常見的同步式來的快。
低耗能
除了非同步式I/O之外,Node.js 還採用 Evented I/O 的模式,因此,Node.js 不需要像一般的 Web Server 需要一大塊記憶體來放著用,而Node.js 只在需要時才會去使用必要的資源,相對比起來較省資源。
入門容易
JavaScript 是一套可深可淺的語言,就是,不需要很懂也可以寫出想要的東西,但是,如果很懂就可以寫出很多令人不可思議的應用(OOP),而 Node.js 因為採用 Javascript ,因此,對於 Web 程式開發者來說,幾乎是無痛的學會另一種應用哩 !
社群支援強
因為 Node.js 採用「非同步式 I/O」的方式,所以,不會因為硬體設備的延遲而造成程式因為需要等待回應而影響到程式的執行,因此,執行速度較常見的同步式來的快。
低耗能
除了非同步式I/O之外,Node.js 還採用 Evented I/O 的模式,因此,Node.js 不需要像一般的 Web Server 需要一大塊記憶體來放著用,而Node.js 只在需要時才會去使用必要的資源,相對比起來較省資源。
入門容易
JavaScript 是一套可深可淺的語言,就是,不需要很懂也可以寫出想要的東西,但是,如果很懂就可以寫出很多令人不可思議的應用(OOP),而 Node.js 因為採用 Javascript ,因此,對於 Web 程式開發者來說,幾乎是無痛的學會另一種應用哩 !
社群支援強
Node.js 有一個叫做 NPM 的網站,專門讓人來提供自己開發的套件 (Package),目前在 NPM 上面已經有 5000 多個套件,所以,可以容易找到需要的功能來用,不需要自己重頭寫,可以加快開發的速度哩 !
安裝與教學
首先到官網安裝Node.js,安裝過程沒有甚麼特別的,接下來你會看到兩個Node.js、 Node.js Commad Prompt
安裝與教學
首先到官網安裝Node.js,安裝過程沒有甚麼特別的,接下來你會看到兩個Node.js、 Node.js Commad Prompt
首先在Node.js的目錄下新增一個文字文件來(*註 若要顯示中文請選擇UTF8),在內文中打上
console.log("Hello World!");接下來改檔名-->"hello.js"`,並在Node.js cmd 打上
node hello.js
接下來第二個重頭戲
我們來建立一個web,在網頁上顯示Hello World!
首先跟上面一樣的步驟,內文打上
var http = require("http");http.createServer(function(request, response) {response.writeHead(200, {"Content-Type": "text/plain"});response.write("Hello World");response.end();}).listen(8888);
1.使用require指令來載入http的模組
2.創建伺服器:使用http.createServer()方法建立伺服器,並使用listen(8888)綁定8888port,函數通過request、reponse來接收和響應數據
3.啟動:在Node,js cmd 打上 node hello.js
這樣我們就完成了第一個Node.js基本階段,下一階段開始使用套件加速開發網頁
Express 介紹、安裝與教學
首先打開我們的Node.js cmd 輸入Express除了為HTTP模組提供了更高階的接口外,還實現了許多功能,其中包含:路由控制、模板解析支持、動態視圖、用戶會話、CSRF保護、靜態文件服務、錯誤控制器、訪問日誌、緩存、插件支持。特別在此註明,Express不是一個無所不包的全能框架,像Rails或Django的那樣實現了模板引擎甚至ORM (Object Relation Model,對象關係模型),它只是一個輕量級的框架,多數功能只是對HTTP協議中常用操作的封裝,更多的功能需要插件或整合其他模組來完成。
npm install express --save以上命令會將 Express 框架安裝在當前目錄的 node_modules 目錄中, node_modules 目錄下會自動創建 express 目錄。以下幾個重要的模塊是需要與 express 框架一起安裝的:
body-parser:用於處理 JSON, Raw, Text 和 URL 編碼的數據。
cookie-parser : 這就是一個解析Cookie的工具。通過req.cookies可以取到傳過來的cookie,並把它們轉成對象。
multer :用於處理 enctype="multipart/form-data"(設置表單的MIME編碼)的表單數據。
npm install body-parser --savenpm install cookie-parser --save npm install multer --save
那接下來我們來用Express 寫 Hello World
var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app);
app.get('/',function(request, response){ //我們要處理URL為 "/" 的HTTP GET請求
response.send('Hello World'); //作出回應
});
server.listen(8080,'127.0.0.1',function(){
console.log('HTTP in http://127.0.0.1:8080/ run');
});
這裡大家應該對下面有所疑問
app.get('/', function (req, res) { // -- })
路由是指判斷應用程式如何回應用戶端對特定端點的要求,而這個特定端點是一個 URI(或路徑)與一個特定的 HTTP 要求方法(GET、POST 等)。
每一個路由可以有一或多個處理程式函數,當路由相符時,就會執行這些函數。
路由定義的結構如下:
app.METHOD(PATH, HANDLER)其中:
- app 是 express 的實例。
- METHOD 是 HTTP 要求方法。
- PATH 是伺服器上的路徑。
- HANDLER 是當路由相符時要執行的函數。
讓我們回到上面
app.get('/',function(request, response){ //我們要處理URL為 "/" 的HTTP GET請求
response.send('Hello World'); //作出回應
});
其解釋為:對根目錄('/')發出GET要求時並回應"Hello World"
就這樣完成了Express 的 Hello World
看完這篇大致上會對於Node.js 跟 Express 有些基本認識,下次會介紹Express的框架並實做,感謝大家,Node,js 完全新手若有任何問題歡迎一起討論與學習。
Refrence:
http://expressjs.com/zh-tw/starter/basic-routing.html
http://www.runoob.com/nodejs/nodejs-express-framework.html
https://blog.allenchou.cc/nodejs-tuts-2-using-express-framework/
http://www.runoob.com/nodejs/nodejs-http-server.html
沒有留言:
張貼留言