Node.js 在Sequelize Model.create上设置raw=true
我希望能够在调用Node.js 在Sequelize Model.create上设置raw=true,node.js,orm,sequelize.js,Node.js,Orm,Sequelize.js,我希望能够在调用Model.createon Sequelize后接收纯原始对象,即创建的对象本身,没有元数据或任何其他内容。就像Model.find中的{raw:true}选项一样 我已经看到了这个答案: , 不,Model.create({name:'test'},{raw:true})不起作用 谢谢您还可以对查询返回的模型实例使用.toJSON() 非常感谢您的帮助。我找到了一个解决方案,虽然这不是我想要的,但它很有效,而且仍然很好 sequelize实体有一个.get()方法来返回普通对
Model.create
on Sequelize后接收纯原始对象,即创建的对象本身,没有元数据或任何其他内容。就像Model.find中的{raw:true}
选项一样
我已经看到了这个答案:
,
不,Model.create({name:'test'},{raw:true})
不起作用
谢谢您还可以对查询返回的模型实例使用.toJSON() 非常感谢您的帮助。我找到了一个解决方案,虽然这不是我想要的,但它很有效,而且仍然很好
sequelize实体有一个.get()
方法来返回普通对象版本。所以是这样的:
Model.create(modelObject)
.then((resultEntity) => {
const dataObj = resultEntity.get({plain:true})
}
来自此线程:。寻找CharlesA的答案
尚未尝试使用数组,但如果您对结果数组有问题,请检查其注释和旁边的答案。
但是由于.create()
只返回一个对象,所以它对我来说是有效的。无论如何,如果您使用的是.findAll()
,那么应该使用{raw:true}
选项而不是此解决方案,因为它在该方法中工作
另外,如果任何人仍然有一个解决方案,Sequelize本身不会返回那个大的resultEntity对象,而只是普通的数据对象,就像{raw:true}
选项一样(因为我认为它仍然更轻?),我们就打开了
多谢各位
Model.create(modelObject)
.then((resultEntity) => {
const dataObj = resultEntity.get({plain:true})
}
如前所述,或者如果您想使用async/await语法,请选择:
const myResultVar = (await Model.create(modelObject)).get({plain:true})
基本上是一样的,只是没有留下async/await语法:)使用model.toObject
函数:谢谢你。但这是针对猫鼬的,但我为sequelizemodel.get找到了一个类似的方法,我将其作为答案发布。Thnx感谢Kevin,找到了一个内置解决方案,并发布为answerI。我注意到.toJSON()
返回整个对象?你知道如何将它与属性配对以过滤返回的内容吗?为什么Sequelize不为create实现{raw:true}?!嗨:)你不需要重复其他答案。你的备选方案足够好,可以自己写下来作为答案。