【问题标题】:Setting all queries to raw = true sequelize将所有查询设置为 raw = true sequelize
【发布时间】:2014-12-01 10:29:13
【问题描述】:

我真的很喜欢在我的节点应用程序中使用 sequelize 作为我的 ORM,但是现在,当您查询时默认情况下它们传递 DAO 对象时,我有点恼火。如何始终将 raw 选项设置为 true?

【问题讨论】:

  • 您的标题说:set raw = true,而您的问题是如何设置 raw= false...

标签: node.js orm sequelize.js


【解决方案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})
  • 您编辑了您的评论...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

【讨论】:

    猜你喜欢
    • 2018-01-15
    • 2020-04-19
    • 2016-01-03
    • 2019-09-05
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多