我希望能够在Sequelize上调用{raw: true}
之后接收普通原始对象,该对象本身是创建的,没有元数据或任何其他东西。就像Model.find
中的Model.create({name: 'test'}, {raw: true})
选项一样。
我已经看到了这个答案:
Setting all queries to raw = true sequelize,
不,plt.gca().set_prop_cycle('color', ["blue"])
不起作用。
由于
答案 0 :(得分:10)
非常感谢你的帮助。我找到了一个解决方案,虽然这不是我正在寻找的,但它有效,而且还很好。
sequelize实体有一个.get()
方法来返回普通对象版本。所以它是这样的:
Model.create(modelObject)
.then((resultEntity) => {
const dataObj = resultEntity.get({plain:true})
}
来自这个帖子:Sequelize, convert entity to plain object。寻找CharlesA的答案。
没有尝试使用数组,但如果您遇到结果数组问题,请检查其注释及其旁边的答案。
但由于.create()
只返回一个对象,它对我有用。无论如何,如果您使用.findAll()
,您应该使用{raw: true}
选项而不是此解决方案,因为它适用于该方法。
P.S。如果有人仍然有一个解决方案,其中Sequelize本身不会返回那个大的resultEntity对象,而只是简单的数据对象,就像{raw: true}
选项一样(因为我觉得它仍然更轻?),我们打开了。
非常感谢。
答案 1 :(得分:1)
Model.create(modelObject)
.then((resultEntity) => {
const dataObj = resultEntity.get({plain:true})
}
就像之前提到的,或者如果您想保持异步/等待语法,请尝试:
const myResultVar = (await Model.create(modelObject)).get({plain:true})
基本上相同的事情只是不将async / await语法放在后面:)
答案 2 :(得分:0)
您还可以对从查询返回的模型实例使用.toJSON()。 http://docs.sequelizejs.com/class/lib/model.js~Model.html#instance-method-toJSON