使用Sequelize获取创建或保存时的关联

时间:2015-03-11 19:26:32

标签: javascript angularjs node.js sequelize.js angularjs-resource

相当简单的问题,只是找不到好的/干净的方式来做到这一点而不打电话给另一个发现

我已经使用Angular-Resource操作了我的节点应用程序,而且我只是对新数据或更改数据进行了一些往返数据调用。

因此ngResource对我的$save()进行/api/users/:id调用等。 Node通过创建或查找用户,进行更新并保存它们来响应此调用。

无论是通过create()还是save(),它都会返回创建的记录,而现在,我使用res.json(user)来溢出我的Angular创建/返回的记录来处理填充我的视图更新信息

现在,我知道使用Sequelizes find()findAll()方法,我可以使用findAll({ include: [{ all: true }]})或单独指定我的模型。

我想知道的是,在save / create

上获取记录关联的最佳方法是什么

并且不幸的是,这不起作用:

models.User.create(newuser, {include:[{ all: true }]}).then(function(user) {
        res.json(user);
    });

我是否真的必须执行另一个 find()才能获得托管模型关联?

1 个答案:

答案 0 :(得分:1)

为了更好地说明 RedactedProfile 的评论中选择的解决方案,这里是代码。

models.User
  .create(newuser, {include:[{ all: true }]})
  .then(user => {
      user.reload().then(user => { res.json(user); })
  });