我们现在可以定义路线,但这些路线是静态的或固定的.要使用动态路由,我们应该提供不同类型的路由.使用动态路线允许我们根据它们传递参数和处理.
以下是动态路线的示例 :
var express = require('express');var app = express();app.get('/:id', function(req, res){ res.send('The id you specified is ' + req.params.id);});app.listen(3000);
要测试这个,请转到 http://localhost:3000/123 .下面的响应将被显示.
可以用其他任何内容替换URL中的'123',更改将反映在响应中.以上更复杂的例子是 :
var express = require('express');var app = express();app.get('/things/:name/:id', function(req, res) { res.send('id: ' + req.params.id + ' and name: ' + req.params.name);});app.listen(3000);
要测试上述代码,请转到 http://localhost:3000/things/it1352/12345.
您可以使用 REQ .params 对象访问您在网址中传递的所有参数.注意,以上2是不同的路径.他们永远不会重叠.此外,如果您想在'/things'时执行代码,则需要单独定义.
模式匹配路径
您还可以使用 regex 来限制URL参数匹配.我们假设你需要 id 是一个5位长的数字.您可以使用以下路线定义 :
var express = require('express');var app = express();app.get('/things/:id([0-9]{5})', function(req, res){ res.send('id: ' + req.params.id);});app.listen(3000);
请注意,这将仅匹配长度为 id 的5位数的请求.您可以使用更复杂的正则表达式来匹配/验证您的路由.如果您的所有路线都不符合要求,您将获得 "无法获取< your-request-route>" 消息作为回复.使用此简单路线替换为404未找到的页面 :
var express = require('express');var app = express();//Other routes hereapp.get('*', function(req, res){ res.send('Sorry, this is an invalid URL.');});app.listen(3000);
重要 : 这应该放在所有路由之后,因为Express匹配 index.js 文件从开始到结束的路由,包括您需要的外部路由器.
For例如,如果我们定义与上面相同的路由,则在使用有效URL请求时,将显示以下输出. : 去;
虽然为了不正确的URL的请求,所述以下显示输出.
免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除
-
TV动画《入间同学入魔了》第三季制作确认 将于10月播出
根据西修原作制作的TV动画《入间同学入魔了》第三季宣布了将于2022年10月播出的消息。本作的宣传图也一并公开。在这次的新宣传图上,可以看到主人公入间和新角色巴巴托斯的样子。 《入间同学入魔了》作品讲述了被父母卖给了恶魔的14岁少年铃木入间在魔界学园生活的故事。TV动画第一季和第二季分别在20
-
华硕Z690主板发布 12代酷睿致胜神装
-
S9:ISGvsSPY 欧洲蛇咬下大白鲨赢得小组第一名!
{@SYS-PAGE-SPLIT@}
-
韩国画师冷门动物拟人作品
-
《幻塔》开服福利少?别被骗了 游戏里藏着大量白给的好东西
-
克苏鲁+伊藤润二《恐怖世界》2023年夏季推出1.0版 并登陆主机
-
iPhone15ProMax预计售价2万块,网曝有这些改变