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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值