//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
本例演示瞭如何在一個路由中包含一個可選的變量 id。 Express並不關心變量的取名, 但之後能夠在回調函數中使用它。 在Express路由中, 我們使用冒號(:) 來標記想要使用的變量, 那麼在URL中傳遞的字符串就會被捕獲並保存在該變量中。
如果你運行此程序, 然後訪問 http://localhost:9001, 就只會得到“oh hai” 的響應, 因爲你沒有在端口後面用 / 帶上路由的可選變量部分。 如果隨意帶上點什麼內容(只要不包含另外一個 / 在裏面),就將在響應內容中得到一樣的內容, 因爲匹配了 id 關鍵字的內容會被保存在 req.params.id 中。
Express 路由總是將/視作一個標記, 而同時又會把請求末尾的/當做可選項,
所以我們提供的路由/:id?會匹配上
localhost、localhost/、localhost/tom和localhost/tom/,
但不包括localhost/tom/tom