使用 Express 的 URL 参数功能时,参数似乎是自动解码的。也就是说,百分比编码的实体被解析为它们的正常形式。 %20
替换为空格。
但是,加号+
不会替换为空格。这大概是因为 Express 在decodeURIComponent()
内部使用,它也不会+
用空格替换 plus。简单示例代码:
app.get('/:sourceFile', function (req, res, next) {
console.log(req.params.sourceFile);
});
如果您请求/test%20test
,那么您将test test
进入控制台。如果您请求/test+test
,那么您将test+test
进入控制台。
有没有办法在 Express 4 中改变这种操作模式?这是一个错误吗?