nodejs通過變量和可選標記選擇路由

var express = require('express');
//var app = express.createServer(); //該方法已被刪除


var app = express();


app.get('/:id?', function(req, res){ //此處id代表/後面的所有值 ,id可改爲任何字符,比如改爲qch,那麼req.params.qch得到/後面的所有值             (疑問:必須是res形參,如果將res改爲rsp會報錯
if(req.params.id){
res.send(req.params.id);
}else{
res.send('oh hai');
}
});


app.listen(9001);


//http://127.0.0.1:9001/id=3&&qiuchunhui

//id=3&&qiuchunhui



本例演示瞭如何在一個路由中包含一個可選的變量 idExpress並不關心變量的取名, 但之後能夠在回調函數中使用它。 在Express路由中, 我們使用冒號(:) 來標記想要使用的變量, 那麼在URL中傳遞的字符串就會被捕獲並保存在該變量中。 


如果你運行此程序, 然後訪問 http://localhost:9001, 就只會得到“oh hai” 的響應, 因爲你沒有在端口後面用 / 帶上路由的可選變量部分。 如果隨意帶上點什麼內容(只要不包含另外一個 / 在裏面),就將在響應內容中得到一樣的內容, 因爲匹配了 id 關鍵字的內容會被保存在 req.params.id 中。


Express 路由總是將/視作一個標記, 而同時又會把請求末尾的/當做可選項, 所以我們提供的路由/:id?會匹配上 localhostlocalhost/localhost/tomlocalhost/tom/, 但不包括localhost/tom/tom

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章