【问题标题】:How to route dynamic URL in Express如何在 Express 中路由动态 URL
【发布时间】:2017-10-23 22:17:18
【问题描述】:
假设我有以下网址:
/page?name=myname&age=25
姓名和年龄具有动态值。
如何为这个页面构建一个路由器获取函数?
选项 1:
router.route("/page").get(function(req, res) {
console.log("got page");
}
选项 2:
router.route("/page?name&age").get(function(req, res) {
console.log("got page");
}
【问题讨论】:
标签:
javascript
node.js
express
routing
【解决方案1】:
会的
router.route("/page").get(function(req, res) {
console.log("got page");
}
?name=myname&age=25 => 是 req 参数。可以通过
访问
req.query.name
req.query.age
【解决方案2】:
您可以将页面的路由构造为:
router.route("/page").get(function(req, res) {
console.log("got page");
}
对于查询参数,您可以通过以下方式访问它们:
req.query.YOUR_QUERY_NAME
因此,在您的情况下,它将变为 req.query.name 和 req.query.age,它们将分别返回值“myname”和 25。
你可以在Documentation page阅读更多内容
如果您也拥有或计划拥有以下路线:
http://localhost:3000/name/user/age/84
在这种情况下,您可以将路由配置为:
router.route("/name/:myName/age/:myage").get(function(req, res) {
name = req.params.myName;
age = req.params.myage;
});
因为req.params 在此处返回带有值参数的对象 req.params 如果console.log 将返回{"myName":"user", "myage":"84"} 对象
你可以从Route params link阅读更多关于路由参数的信息
【解决方案3】:
您可以使用req.query.name 和req.query.age 来实现,您不需要特定的路线,只需router.route("/page")...
您也可以使用:Route parameters 获取干净的 URL