【问题标题】:Ampersand not working for Sequelize query&符号不适用于 Sequelize 查询
【发布时间】:2020-12-05 00:14:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您能否展示一个带有无法正常工作的 & 符号的 Sequelize 查询示例?
  • 示例查询类似于 User.findOne({ where: { name: "John & Doe"}});

标签: mysql node.js sequelize.js


【解决方案1】:

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

通过 POST 请求发送已修复。

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

【讨论】:

    【解决方案2】:

    您应该使用双引号 " 而不是双引号 '

    这是基于 PostgreSQL 的行为。你可以在this answer阅读解释

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      相关资源
      最近更新 更多