node.js - Express.js 带特殊字符的参数 URL 编码

标签 node.js url express encoding

我正在构建一个express.js Web API,但在处理我们的遗留数据时遇到了障碍。我们在特定数据模型上有身份字段,其中包含许多不同的特殊字符。以下是我们的一些示例 ID:

W2220-059AP0254LL%M031  
SMT II #12B75984  
ST14P134-0110072,9\'98  
TKH-12-110?????  

所以我们有一个端点,例如:/thing/{id}

显然,上面的示例不适用于此端点。我曾尝试使用express 在我们的第一个入口点中进行URI 编码,但是当它达到时,在大多数情况下已经为时已晚。

还有其他方法可以达到这个目的吗?

最佳答案

尝试这个中间件(在任何路由之前):

app.use(function(req, res, next) {
  req.url = req.url.replace(/^(\/thing\/)(.+)/, function($0, $1, $2) {
    return $1 + encodeURIComponent($2);
  });
  next();
});

这假设所有/thing/:id的请求都没有正确编码。

关于node.js - Express.js 带特殊字符的参数 URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32230309/

相关文章:

javascript - 如何将每个快速 js 请求包装在域或 trycatch 中

node.js - METEOR - 是否有处理人口的机制

node.js - 尝试执行提取 DELTE 但不断收到语法错误 : Unexpected end of JSON input

javascript - 单击下载按钮从 URL : dots in the URL are all replaced by underscore? 下载图像

android - 在 Android Studio 中显示字符串列表中的随机 url

javascript - 不使用模板引擎时如何在 Express.js View 中包含 CSS 文件?

node.js - 使用 Express,我可以自动修剪 req.body 中所有传入的 POSTed 字段吗?

node.js - waterfall 内的 Node 异步并行

javascript - 使用 Mocha & Chai 进行 Node 测试 -> 错误.. TypeError : app. 地址不是函数

javascript - JS检查url是否包含单词或字符