鍍金池/ 教程/ HTML/ Node.js Express框架
Node.js快速入門
Node.js事件發(fā)射器
Node.js包(JXcore)
Node.js事件循環(huán)
Node.js文件系統(tǒng)
Node.js npm
Node.js安裝和入門
Node.js工具模塊
Node.js回調(diào)概念
Node.js流
Node.js入門實(shí)例程序
Node.js教程
Node.js規(guī)范化應(yīng)用
Node.js REPL終端
Node.js緩沖器
Node.js RESTful API
Node.js全局對象
Linux安裝Node.js(源碼編譯安裝)
Node.js Web模塊
Node.js Express框架

Node.js Express框架

Express 介紹

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

首先,安裝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

Hello world 示例

下面是一個非?;镜腅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é)果。

First Application

Request & Response

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緩沖器