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

Sequelize调用get({plain:true})加花括号返回undefined是什么原因?

问题原因

这个问题和Sequelize本身无关,属于JavaScript箭头函数的基础语法知识点疏漏:

箭头函数有两种使用形式,两种形式的返回值规则完全不同:

  • 不带花括号的简写形式:箭头后直接跟表达式,函数会自动返回该表达式的执行结果,你修改后能正常运行的代码就是用了这种规则,自动把message.get({plain: true})的执行结果返回给了map方法
  • 带花括号的块级形式:花括号包裹的内容会被识别为独立的函数体代码块,函数默认不会返回任何值,必须手动添加return关键字指定返回内容。你最开始的错误代码里,只在花括号内执行了message.get({plain: true})语句,没有写return把结果返回,所以map遍历得到的每一项都是undefined。

如果实际开发中需要在箭头函数内写多行处理逻辑,必须使用花括号的话,手动补充return即可正常运行:

const messages = dbMessagesData.map(message => {
  // 此处可添加其他业务逻辑
  return message.get({plain: true});
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:06:03