简体   繁体   English

如何使用 node.js 更新 object 中的值并续集

[英]How can I update value in object with node.js and sequelize

I would like to update values (missions.status and missions.success) in the object, but I don't know how to approach it.我想更新 object 中的值(missions.status 和mission.success),但我不知道如何处理它。

 "missions": { "missions": [ { "week": 1, "status": "", "mission": "do something", "success": "" } ] }

I tried to like this.我试着喜欢这个。

 //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); } });

It is req.body and response, looks like it works, but doesn't update in databases.它是 req.body 和响应,看起来可以工作,但不会在数据库中更新。 I don't know how to save that.我不知道如何保存它。

 //req.body { "missions": { "missions":[ { "status": "no", "success":"success" } ] } } // res.send { "data": { "week": 1, "status": "no", "mission": "do something", "success": "success" }, "message": "good status changed" }

You didn't call update for your model so that's why you'll get no changes in a DB.您没有为您的 model 调用更新,这就是为什么您不会在数据库中获得任何更改。 Try this:尝试这个:

await models.User.update(weekdata, {
      where: {
        id: req.params.id,
      },
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM