当前位置: 首页 > 面试题库 >

带斜线的Express.js路由参数

东方嘉木
2023-03-14
问题内容

我有一个提供文件列表的应用程序。

应用程序必须响应以下路由:

/company/:id
/company/:id/dir
/company/:id/dir/dir

/company/:id是没有path指定路径的路由,例如root目录。我在想类似的东西app.get('/company/:id/:path', ...显然不起作用。

如何定义一个响应所有示例的路线?


问题答案:

使用/company/:id*(注意尾随星号)。

完整的例子

var express = require('express')();

express.use(express.router);

express.get('/company/:id*', function(req, res, next) {
    res.json({
        id: req.params['id'],
        path: req.params[0]
    });    
});

express.listen(8080);


 类似资料:
  • 问题内容: 我有一条看起来像这样的路线: 但是,这行不通-如果我打电话,它会到达路线,但是如果我打电话,它不会。 是否可以有一个可选的splat参数,或者我必须使用正则表达式来检测到这一点? 编辑 : 更清楚地说,这是我要达到的要求: 第一和第二个参数是 必需的 第一个参数是静态的,第二个参数是命名的参数。 可以附加任意数量的 可选 附加参数,并且仍然可以实现。 问题答案: 这适用于Express

  • 我正在使用执行REST调用,并且我有一个包含斜杠(即20/20)的uriparam > 如果我不执行httpEncoder,我将获得一个rest调用:http://www.nowhere.com/?variable=20/20,值变量gets仅为20。 如果我执行httpEncoder,变量的值是%2f(它是正确的,这是我想要的值),但是当我执行其余的调用时,它会调用:http://www.now

  • 将路由链接到参数 显示特定产品详细信息的组件的路由需要该产品ID的路由参数。我们可以使用以下实现: 注意:product-details路由的路径中的 ,它将参数放在路径中。例如,要查看ID为5的产品的产品详细信息页面,必须使用以下URL:localhost:3000/product-details/5 注意,指令传递一个数组,该数组指定路径和路由参数。或者,我们可以使用JS跳转: Product

  • 路由参数 路由分组及规则定义支持指定路由参数,这些参数主要完成路由匹配检测以及行为执行。5.1版本极大改进了路由参数的用法。 路由参数可以在定义路由规则的时候直接传入(批量),不过5.1采用了更加面向对象的方式进行路由参数配置,因此使用方法配置更加清晰。 参数 说明 方法名 method 请求类型检测,支持多个请求类型 method ext URL后缀检测,支持匹配多个后缀 ext deny_ex

  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re

  • 文档指出,定义路由的首选方式是包含一个尾随斜杠: 这样,客户端就可以或并接收相同的结果。 但是,发布的方法没有相同的行为。 在这里,如果您,那么如果您不是在调试模式下运行,它将以失败,或者如果您是在调试模式下运行,它将以以下通知失败: 请求已发送到此URL(HTTP://localhost:5000/foo),但路由系统自动发出重定向到“HTTP://localhost:5000/foo/”。UR