【问题标题】:Return object with updated association in Sequelize在 Sequelize 中返回具有更新关联的对象
【发布时间】:2019-05-28 17:01:33
【问题描述】:

使用 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);
  }
);

【问题讨论】:

    标签: mysql node.js sequelize.js


    【解决方案1】:

    您只需returning: true :

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

    【讨论】:

    • 谢谢。我试过了,但它仍然返回旧的关联,它看起来只适用于 Postgres 我忘了提到我正在使用 MySQL。
    • 那么你需要先更新记录,然后你需要再次获取它并返回它的唯一方法 mysql 和 sequelize
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多