我正在构建一个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/