javascript - 如何在路由参数中使用斜杠

标签 javascript node.js rest url express

我有一个 GET REST 服务需要接受带有/的参数

URL = "/term/:term/amount/:amount" 其中:term 可以是像“para/5MG”这样的字符串。

有没有办法在 express 中做到这一点?当我的 api 被使用时,我不想用 queryparams 重写它。

最佳答案

native ,express 尝试在 / 处进行拆分,因此您必须手动进行拆分。这是一个这样做的例子:

app.get('/term/\\S+/amount/:amount', function (req, res, next){
  var match;
  if(match = req.path.match(/^\/term\/(.*?)\/amount\/(.*)$/)){
    var term = match[1];
    var amount = req.params.amount;
    // or do whatever you like

    res.json({term: term, amount: amount})
  }else{
    res.sendStatus(404);
  }
})

使用此方法,您将失去很多 expresse 的内置魔法。首先对参数进行 URI 编码可能会更好。 (像这样:term/para%2F5MG/amount/3)

关于javascript - 如何在路由参数中使用斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414482/

相关文章:

javascript - 如何将经度和纬度转换为街道地址

javascript - 如何使用 JavaScript 转义所有非字母数字字符?

javascript - 防止sequelize软删除在其他地方引用的行

javascript - jQuery REST Session 不起作用,但在 POSTMan 中有效

java - 用于单个应用程序的 REST 和 SOAP Web 服务

javascript - 创建带有提示的网页

javascript - 具有单个文本字段的 HTML 表单 + 防止在 Internet Explorer 中回发

node.js - 在 Angular 4 中使用 Node 模块(网站抓取工具)使用失败

node.js - 通过 google http rest api 发送电子邮件

azure - 对 Azure Maps 搜索中的结果进行排序