Mon*_*Mon 3 orm node.js sequelize.js
我希望能够在调用Model.createSequelize 之后接收普通的原始对象,Sequelize是创建的对象本身,没有元数据或任何其他东西.就像{raw: true}选项一样Model.find.
我已经看到了这个答案:
将所有查询设置为raw = true sequelize,不,Model.create({name: 'test'}, {raw: true})不起作用.
谢谢
Mon*_*Mon 12
非常感谢您的帮助.我找到了一个解决方案,虽然这不是我正在寻找的,但它有效,而且还很好.
sequelize实体有一个.get()返回普通对象版本的方法.所以它是这样的:
Model.create(modelObject)
.then((resultEntity) => {
const dataObj = resultEntity.get({plain:true})
}
Run Code Online (Sandbox Code Playgroud)
来自这个线程:Sequelize,将实体转换为普通对象.寻找CharlesA的答案.
没有尝试使用数组,但如果您遇到结果数组问题,请检查它的注释和旁边的答案.但由于.create()只返回一个对象,它对我有用.无论如何,如果您正在使用.findAll(),您应该使用{raw: true}选项而不是此解决方案,因为它适用于该方法.
PS如果有人仍然有一个解决方案,其中Sequelize本身不会返回那个大的resultEntity对象,而只是普通的数据对象,就像{raw: true}选项一样(因为我认为它仍然更轻?),我们是开放的.
非常感谢你.
小智 6
Model.create(modelObject)
.then((resultEntity) => {
const dataObj = resultEntity.get({plain:true})
}
Run Code Online (Sandbox Code Playgroud)
就像之前提到的,或者如果您想保留 async/await 语法,请执行以下操作:
const myResultVar = (await Model.create(modelObject)).get({plain:true})
Run Code Online (Sandbox Code Playgroud)
基本上是同样的事情,只是没有留下 async/await 语法:)
| 归档时间: |
|
| 查看次数: |
6109 次 |
| 最近记录: |