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)它。現(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方法。