简体   繁体   English

如何在Express中路由动态URL

[英]How to route dynamic URL in Express

Say I have the following URL: 说我有以下网址:

/page?name=myname&age=25

Where name and age have dynamic values. 名称和年龄具有动态值。

How do I construct a router get function for this page? 如何为此页面构建路由器获取功能?

Option 1: 选项1:

router.route("/page").get(function(req, res) {
    console.log("got page");
}

Option 2: 选项2:

router.route("/page?name&age").get(function(req, res) {
    console.log("got page");
}

It will be 这将是

router.route("/page").get(function(req, res) {
    console.log("got page");
}

?name=myname&age=25 => are req parameters. ?name = myname&age = 25 =>是req参数。 which can be accessed by 可以访问

req.query.name
req.query.age

You can use req.query.name and req.query.age for that, you don't need a specific route, just router.route("/page")... 你可以使用req.query.namereq.query.age ,你不需要特定的路由,只需router.route("/page")...

You can also use: Route parameters to get a clean URL 您还可以使用: 路由参数来获取干净的URL

You can construct the route for the page as: 您可以为页面构建路径:

router.route("/page").get(function(req, res) {
    console.log("got page");
}

and as for the query parameters you can access them as: 至于查询参数,您可以访问它们:

req.query.YOUR_QUERY_NAME

therefore in your case it will become req.query.name and req.query.age which will return the values "myname" and 25 respectively. 因此,在您的情况下,它将成为req.query.namereq.query.age ,它们将分别返回值“myname”和25。

you can read more on Documentation page 您可以在文档页面上阅读更多内容

In case you are also having or planning to have routes like: http://localhost:3000/name/user/age/84 如果您还拥有或计划拥有以下路线: http://localhost:3000/name/user/age/84

In that case you can have you routes config as: 在这种情况下,您可以将路由配置为:

router.route("/name/:myName/age/:myage").get(function(req, res) {
name = req.params.myName;
age = req.params.myage;
});

as req.params returns the object with value params here req.params if console.log will return {"myName":"user", "myage":"84"} object 如果console.log将返回{"myName":"user", "myage":"84"}对象,则req.params返回值为params的对象req.params

you can read more about route params from Route params link 你可以从Route params链接阅读更多关于路线参数的信息

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM