Express.js路由定義了Express應(yīng)用程序如何使用特定的URI(或path)和特定的HTTP請(qǐng)求方法(GET,POST等)來響應(yīng)客戶端請(qǐng)求 。
為了理解Express.js路由的需求,讓我們深入一個(gè)示例。
創(chuàng)建一個(gè)基本的Express應(yīng)用程序,如下所示。
app.js
var express = require('express') var app = express() // 啟動(dòng)服務(wù)器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') })
我們要做的是,實(shí)例化一個(gè)快速應(yīng)用程序,在端口8000上啟動(dòng)它?,F(xiàn)在,打開瀏覽器,并訪問URL http://localhost:8000/。
響應(yīng)是它無法獲取資源“ /”。
即使控制臺(tái)中沒有錯(cuò)誤。該應(yīng)用程序運(yùn)行良好。
這是為什么?因?yàn)樵贓xpress應(yīng)用程序中,我們啟動(dòng)了服務(wù)器,但是沒有定義當(dāng)請(qǐng)求到達(dá)服務(wù)器時(shí)必須發(fā)生的情況。
這就是Express.js路由的體現(xiàn)。以下是一條簡(jiǎn)單的快速路線。
app.get('/', function (req, res) { res.send('This is a basic Example for Express.js by nhooo') })
這條路線定義什么?當(dāng)您收到GET請(qǐng)求網(wǎng)址為的請(qǐng)求時(shí),此路由定義在函數(shù)內(nèi)部執(zhí)行語句/。
在下面的屏幕快照中是一條路由,其中針對(duì)具有request url的GET請(qǐng)求執(zhí)行功能/hello/。
讓我們?cè)赼pp.js中定義一些路由并啟動(dòng)服務(wù)器。
app.js
var express = require('express') var app = express() // 為GET請(qǐng)求和請(qǐng)求URL路徑'/'或根執(zhí)行的路由 app.get('/', function (req, res) { res.send('Home.') }) // 為GET請(qǐng)求和請(qǐng)求url路徑'/ hello /'執(zhí)行的路由 app.get('/hello/', function (req, res) { res.send('Hello page.') }) // 為GET請(qǐng)求和請(qǐng)求url路徑'/ bye /'執(zhí)行的路由 app.get('/bye/', function (req, res) { res.send('Bye page.') }) // 啟動(dòng)服務(wù)器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') })
啟動(dòng)快速申請(qǐng)。
現(xiàn)在點(diǎn)擊瀏覽器中的網(wǎng)址。默認(rèn)情況下,瀏覽器發(fā)送GET請(qǐng)求。
帶有URL路徑http:// localhost:8000 /的GET請(qǐng)求
帶有URL路徑http:// localhost:8000 / hello /的GET請(qǐng)求
帶有URL路徑http:// localhost:8000 / bye /的GET請(qǐng)求
您可以在路線中提供一個(gè)或多個(gè)功能。每個(gè)功能都稱為中間件。
app.js
var express = require('express') var app = express() // 具有多種功能的快速路線 app.get('/hello/', function (req, res, next) { res.write('Hello page. ') next() }, function(req, res, next){ res.write('Hello again. ') res.end() }) // 啟動(dòng)服務(wù)器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') })
在瀏覽器中,輸出為
您也可以分別為模塊化定義這些功能,如下所示。
var express = require('express') var app = express() function hello(req, res, next) { res.write('Hello page. ') next() } function helloagain(req, res, next){ res.write('Hello again. ') res.end() } // 具有多種功能的快速路線 app.get('/hello/', hello, helloagain) // 啟動(dòng)服務(wù)器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') })
在此Express.js教程中,我們了解了Express.js路由是什么,如何定義Express.js路由以及如何使用這些路由針對(duì)不同的URL路徑提供不同種類的HTTP方法。