【问题标题】:Is there a wildcard character in Express.js routing? [duplicate]Express.js 路由中是否有通配符? [复制]
【发布时间】:2019-08-29 09:54:18
【问题描述】:

我想创建一个如下所示的 Web 应用程序结构:

rootUrl/shopRecords/shop1
rootUrl/shopRecords/shop2
rootUrl/shopRecords/shop3...

商店可以有任何限制,但所有商店页面都将具有相同的页面布局(相同的 HTML/Pug 页面,只是填充了来自数据库的不同数据)。这些 URL 将通过主页上的按钮/链接列表访问。

Express.js 是否有通配符,以便我可以将链接格式为 rootUrl/shopRecords/* 的所有页面的行为指定为相同?

【问题讨论】:

  • 是的,您可以使用rootUrl/shopRecords/:shopId,然后通过req.params.shopId 访问该属性。但这是一个非常基本的问题,你可以在官方文档的第一页得到答案
  • @CristianTraìna — 不,这是针对查询字符串的。

标签: javascript node.js express


【解决方案1】:

ExpressJS 文档的routing 部分对此进行了解释。

路由参数是命名的 URL 段,用于捕获 在 URL 中的位置指定的值。捕获的值是 填充在req.params 对象中,并带有路由的名称 路径中指定的参数作为它们各自的键。

路由路径:/users/:userId/books/:bookId
请求地址: http://localhost:3000/users/34/books/8989
req.params: { "userId": "34", "bookId": "8989" }

要使用路由参数定义路由,只需指定路由 路由路径中的参数如下所示。

app.get('/users/:userId/books/:bookId', function (req, res) {
  res.send(req.params)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2013-12-19
    • 2012-08-26
    • 2022-08-09
    • 1970-01-01
    相关资源
    最近更新 更多