在 GET 请求中传递查询字符串,express 将查询字符串中的“+”字符转换为空格如何避免这种情况?

问题描述

我在 GET 请求中的查询字符串中传递某些参数比方说 HOST?email=john**+1@gmail.com。当我尝试通过 req.query.email 在 node express 服务器中访问这些时,我得到值“john 1@gmail.com”。 Express 正在将 '+**' 字符转换为空格字符。有什么办法可以停止这种编码吗?

解决方法

如果你想使用文字 + 符号,你需要将它的 URL 编码为 %2b,例如

HOST?email=john**%2b1@gmail.com.

这将通过 express 正确解码,例如

req.query.email: john**+1@gmail.com.