& 符号不适用于 Sequelize 查询

Ampersand not working for Sequelize query

无论出于何种原因,Sequelize 都忽略了 & 符号,我无法弄清楚原因。查询的其余部分直接出现在控制台中 (Node.Js),但在 where 参数中它忽略了 & 符号并截断了字符串的其余部分。

问题似乎只是与符号有关,因为我尝试过的其他特殊字符(不多,但有一些,例如 .)工作正常。

我还在 Sequelize 中尝试了一个原始查询,我将文字 SQL 代码与符号放在一起,结果是一样的。也没有错误(除了 MySQL 说明所述条目不存在,这是准确的,因为 Sequelize 不包括&符号并切断它后面的其余字符串)

[预期] 输入:“堆栈和溢出” 输出:“堆栈和溢出”

[现实] 输入:“堆栈和溢出” 输出:“堆栈”

而不是双引号 " 你应该使用单引号 '.

这是基于 PostgreSQL 的行为。您可以阅读

中的说明

经过多次调试和故障排除后,我创建了一个隔离环境。原来问题一直是我出于某种原因在 GET 请求中发送数据。结果 & 正在创建单独的参数。

已通过 POST 请求发送修复。

我想 URL 编码也可以解决这个问题。