我要查找id
is的itme:1const student=await this.db.student.findBypk(1)
当我得到结果时,然后控制它(console.log(student)
)
student {
dataValues: { id: 1, name: 'Darush', family: 'Hamidi' },
_previousDataValues: { id: 1, name: 'Darush', family: 'Hamidi' },
_changed: Set(0) {},
_options: {
isNewRecord: false,
_schema: null,
_schemaDelimiter: '',
raw: true,
attributes: [ 'id', 'name', 'family' ]
},
isNewRecord: false
}
那么将学生发送到浏览器的结果将是(res.send(student)
)?
{
"id": 1,
"name": "Darush",
"family": "Hamidi"
}
为什么我们有区别?
这是因为使用findbypk
方法(以及所有类似的方法),您将获得一个Sequelize模型的实例,而不是一个普通对象,并且当您将此模型实例传递给res.send
时,它将序列化为仅具有模型属性的普通对象。如果您希望从一个模型实例中获取一个普通对象,那么调用get({plain:true})
就没有什么区别了。
const plainStudentObj = student.get({ plain: true })
res.send(plainStudentObj)
我将RWA
设置为true
:它可以很好地工作
const student = await this.db.Student.findByPk(1,{ raw: true })