You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS查询代码抛出‘invalid string length’错误,求排查

问题分析与修复

核心问题1:条件判断逻辑错误

你的if判断carBrand == 'Ferrari or Porsche'是在判断carBrand字符串完全等于"Ferrari or Porsche"这个整串,而不是判断carBrand属于Ferrari或Porsche两种情况。这会导致该if分支逻辑完全不符合预期,甚至永远不会触发。

核心问题2:SQL查询字段错误

你要筛选的是carBrand为Ferrari或Porsche,但代码里写的是db_table.carBrand = :tmp_1 OR db_table.contentLevel = :tmp_2,把Porsche错误对应到了contentLevel字段,这会让查询逻辑完全偏离需求,甚至可能因字段类型不匹配引发异常。

次要问题:代码语法不完整

提供的代码片段中if语句的大括号未闭合,这会直接导致语法错误,需要补全闭合的}。


修复后的代码示例

用IN写法更简洁:

if(carBrand === 'Ferrari' || carBrand === 'Porsche') {
  query = query.andWhere(`db_table.carBrand IN (:tmp_1, :tmp_2)`, {
    tmp_1: `Ferrari`,
    tmp_2: `Porsche`,
  });
}

也可以用OR写法:

if(carBrand === 'Ferrari' || carBrand === 'Porsche') {
  query = query.andWhere(`db_table.carBrand = :tmp_1 OR db_table.carBrand = :tmp_2`, {
    tmp_1: `Ferrari`,
    tmp_2: `Porsche`,
  });
}

内容的提问来源于stack exchange,提问作者king_potato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:57:03