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

如何在Sequelize中获取关联查询结果并在Thunk中正确访问Perfume.name字段

解决方案

方案1:直接读取现有扁平结构的字段

因为返回结果里的关联字段是带点的字符串键,JS 中带特殊字符的键不能用点语法访问,改用方括号语法即可:

// Thunk 中直接取值即可
const perfumeName = item['Perfume.name']

方案2:修改Sequelize查询配置,返回嵌套结构(推荐)

出现扁平字段的根本原因是你开启了raw: true查询配置,或者没有开启嵌套返回开关,调整查询参数即可让结果自动生成嵌套对象:

// 原查询写法(会返回扁平字段)
const result = await 你的主模型.findAll({
  include: [Perfume],
  raw: true // 这行是导致字段打平的核心原因
})

// 修改后的查询写法
const result = await 你的主模型.findAll({
  include: [Perfume],
  raw: false, // 关闭raw查询
  nest: true // 开启嵌套结构返回
})

修改后你就可以直接用item.Perfume.name的方式正常访问关联字段,不管是在Thunk中处理数据还是后续传给组件使用都更方便。

补充说明

如果你无法修改后端的Sequelize查询逻辑,只能拿到扁平结构的返回结果,也可以写个简单的转换函数批量把所有带点的扁平键转成嵌套对象,之后统一用嵌套语法访问即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:02