将所有查询设置为 raw = true sequelize
Posted
技术标签:
【中文标题】将所有查询设置为 raw = true sequelize【英文标题】:Setting all queries to raw = true sequelize 【发布时间】:2014-12-01 10:29:13 【问题描述】:我真的很喜欢在我的节点应用程序中使用 sequelize 作为我的 ORM,但是现在,当您查询时默认情况下它们传递 DAO 对象时,我有点恼火。如何始终将 raw 选项设置为 true?
【问题讨论】:
您的标题说:set raw = true,而您的问题是如何设置 raw= false... 【参考方案1】:根据the doc:
如果您不提供除 SQL 之外的其他参数,则 raw 将被假定为 true,并且 sequelize 不会尝试对查询结果进行任何格式化。
话虽这么说:
Sequelize 对象有一个 [options.query=] 可选参数来设置 sequelize.query 的默认选项。 Source
你应该可以使用:
var sequelize = new Sequelize('database', 'username', 'password', query:raw:true)
【讨论】:
哇,这很有帮助,不过我有一个问题,当我使用 create 时,仍然有 DAO 对象,查询 raw: true 在我使用 find 时有所帮助,但它不会影响我使用创建。示例代码:Model.create(name: 'test', options: raw: true)
试试:Modelgroup.create(test, raw: true)
github.com/sequelize/sequelize/wiki/…
您编辑了您的评论...Model.create(name: 'test', raw: true)
应该可以工作
好吧,这个问题:“将所有查询设置为 raw = true”得到了回答,也许可以为 Model.create() 提出一个特定的问题。你确定Model.create(name: 'test', raw: true)
不起作用吗?【参考方案2】:
你可以使用这个来创建:
Model.create(modelObject)
.then((resultEntity) =>
const dataObj = resultEntity.get(plain:true)
看看这个:Set raw = true on Sequelize Model.create
【讨论】:
以上是关于将所有查询设置为 raw = true sequelize的主要内容,如果未能解决你的问题,请参考以下文章
在 Sequelize Model.create 上设置 raw = true