Express是一個最小的,靈活的Node.js Web應(yīng)用程序框架,它提供了一套強(qiáng)大的功能來開發(fā)Web和移動應(yīng)用程序。 它有助于基于Node Web應(yīng)用程序的快速開發(fā)。下面是一些Express框架的核心功能:
允許設(shè)立中間件響應(yīng)HTTP請求
定義了用于執(zhí)行基于HTTP方法和URL不同動作的路由表
允許動態(tài)渲染基于參數(shù)傳遞給模板HTML頁面
首先,安裝Express 框架全局使用NPM,以便它可以被用來使用Node終端創(chuàng)建Web應(yīng)用程序。
$ npm install express --save
上面的命令在本地node_modules目錄保存安裝,并創(chuàng)建一個目錄express在node_modules里邊。還有,應(yīng)該使用express安裝以下幾個重要的模塊:
body-parser - 這是一個Node.js中間件處理JSON,Raw,文本和URL編碼的表單數(shù)據(jù)
cookie-parser - 解析Cookie頭和填充req.cookies通過cookie名字鍵控對象
multer - 這是一個Node.js的中間件處理multipart/form-data
$ npm install body-parser --save $ npm install cookie-parser --save $ npm install multer --save
下面是一個非?;镜腅xpress應(yīng)用程序,它會啟動服務(wù)器,并偵聽端口3000等待連接。這個應(yīng)用程序使用"Hello World! "回應(yīng)!為請求網(wǎng)頁。 對于所有其他路徑,這將響應(yīng)一個404表示未找到。
var express = require('express'); var app = express(); app.get('/', function(req, res) { res.send('Hello World'); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port) })
保存上面的代碼中的一個文件名為server.js,并用以下命令運(yùn)行它。
$ node server.js
你會看到以下的輸出:
Example app listening at http://0.0.0.0:8081
在任何瀏覽器中打開http://127.0.0.1:8081/,看看下面的結(jié)果。
Express應(yīng)用程序利用了一個回調(diào)函數(shù),它的參數(shù)是request和response對象。
app.get('/', function (req, res) { // -- })
您可以查看兩個對象更詳細(xì)的信息:
Request對象 - 請求對象表示HTTP請求和具有用于請求查詢字符串,參數(shù),主體,HTTP報頭,等等的屬性。
Response對象 - 響應(yīng)對象表示HTTP響應(yīng)Express應(yīng)用程序發(fā)送時,它得到一個HTTP請求。
您可以打印提供有關(guān)HTTP請求和響應(yīng),包括 cookies, sessions, URL 等信息req和res對象
我們已經(jīng)看到它服務(wù)于網(wǎng)頁的HTTP請求的基本應(yīng)用。 路由指的是確定應(yīng)用程序如何響應(yīng)客戶機(jī)請求到特定端點(diǎn),這是一個URI(或路徑)和特定的HTTP請求方法(GET,POST等)。
我們將擴(kuò)大之前的Hello World程序添加功能,可以處理更多類型的HTTP請求。
var express = require('express'); var app = express(); // This responds with "Hello World" on the homepage app.get('/', function (req, res) { console.log("Got a GET request for the homepage"); res.send('Hello GET'); }) // This responds a POST request for the homepage app.post('/', function (req, res) { console.log("Got a POST request for the homepage"); res.send('Hello POST'); }) // This responds a DELETE request for the /del_user page. app.delete('/del_user', function (req, res) { console.log("Got a DELETE request for /del_user"); res.send('Hello DELETE'); }) // This responds a GET request for the /list_user page. app.get('/list_user', function (req, res) { console.log("Got a GET request for /list_user"); res.send('Page Listing'); }) // This responds a GET request for abcd, abxcd, ab123cd, and so on app.get('/ab*cd', function(req, res) { console.log("Got a GET request for /ab*cd"); res.send('Page Pattern Match'); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port) })
保存上面的代碼中的一個文件名為server.js,并用以下命令運(yùn)行它。
$ node server.js
你會看到以下的輸出:
上一篇:Node.js RESTful API下一篇:Node.js緩沖器