一级标题
后端向数据库更改update数据,用postman调试返回结果Okpacket{},但是数据没存进去。
相关代码:
/* 修改个人信息 */ 封装的changeMsgInfo方法,方便下面函数调用
static changeMsgInfo(myName,sex,className,stuNum,username){
return new Promise((resolve,reject)=>{
let sql="update myusers_db set my_name='"+myName+"',sex='"+sex+"',class_name='"+className+"',stu_num='"+stuNum+"' where username='"+username+"'"
this.query(sql).then(result=>{
console.log("走到result")
resolve(result)
}).catch(err=>{
console.log("写入失败了!!@")
reject("写入失败了!")
})
})
/* 修改个人信息 封装的changeMsg方法,方便接口调用 */
static async changeMsg(req,resp){
let body = req.body
let changeMsgData = await this.changeMsgInfo(body.myName,body.sex,body.className,body.stuNum,body.username)
if(changeMsgData.length!=0){
console.log("成功")
resp.send(changeMsgData)
} else{
console.log("失败")
console.log(changeMsgData)
resp.status(500).send("写入数据失败")
}
}
router.get('/changeMsg',function(req,res){
user.changeMsg(req,res)
})
这是终端打印的结果
返回了一个Okpacket的数组,数据没update到数据库
解决方案:
参考了其他开源项目之后,在接口的地方function加上async就解决了,具体什么原因后续再深入了解。解决方法:
/* 修改个人信息*/
router.post('/changeMsg',async function(req,res){
user.changeMsg(req,res)
})