我想更新对象中的值(missions.status 和missions.success),
但我不知道如何处理它。
"missions": {
"missions": [
{
"week": 1,
"status": "",
"mission": "do something",
"success": ""
}
]
}
我试着喜欢这个。
//success.js
router.put('/:id/result', async (req, res, next) => {
const status = req.body.missions.missions[0].status;
const success = req.body.missions.missions[0].success;
try {
const result = await models.User.findOne({
attribute: ['missions'],
where: {
id: req.params.id,
},
});
const data = {
result: result,
};
let originalData = data.result.dataValues.missions.missions[0];
let weekdata = { status: status, success: success };
let resultData = Object.assign(originalData, weekdata);
res.send({
data: resultData,
message: 'good status changed',
});
} catch (error) {
console.log(error);
res.sendStatus(400);
}
});
它是 req.body 和 response,看起来它有效,但不会在数据库中更新。我不知道如何保存它。
//req.body
{
"missions": {
"missions":[
{
"status": "no",
"success":"success"
}
]
}
}
// res.send
{
"data": {
"week": 1,
"status": "no",
"mission": "do something",
"success": "success"
},
"message": "good status changed"
}
最佳答案
您没有为您的模型调用 update 所以这就是为什么您不会在数据库中获得任何更改的原因。
试试这个:
await models.User.update(weekdata, {
where: {
id: req.params.id,
},
});
关于javascript - 如何使用 node.js 和 sequelize 更新对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62151113/