在Sequelize中返回具有更新关联的对象

时间:2019-01-01 23:20:21

标签: mysql node.js sequelize.js

使用Sequelize和MySQL,更新一个对象,包括它具有的关联对象。一切都更新正常,但我无法返回新的关联对象。如果我再执行一次GET请求,则它是新请求,但我需要它在更新后返回响应。

我试图在返回之前重新加载该联系人对象。

对象看起来像这样:

{

    "id": 1,

    "details": "some task details",

        "contact": { //associated object

            "associatedId": 1,

            "name": "Mike",

       }

}

这就是我正在尝试的

db.task.findOne({
  where: {
    id: taskId,
    userId: req.user.get('id')
  },
  include: [db.contact]
}).then(
  function(task) {
    if (task) {
      return task.update(attributes);
    } else {
      res.status(404).send();
    }
  },
  function() {
    res.status(500).send();
  }
).then(
  function(task) {
    if(task) {
      res.json(task);
    }
  },
  function(e) {
    res.status(400).json(e);
  }
);

1 个答案:

答案 0 :(得分:1)

您需要做的只是returning: true

return task.update(attributes,{
  returning: true,
  plain: true
});