【发布时间】:2015-05-13 18:32:33
【问题描述】:
相当简单的问题,如果不调用另一个 find 就找不到好的/干净的方法来做到这一点
我已经用 Angular-Resource 安装了我的节点应用程序,我只是在对新的或更改的数据进行数据调用之类的往返。
所以 ngResource 将 $save() 调用到我的 /api/users/:id 等等。 Node 通过创建或查找用户、进行更新并保存它们来响应此调用。
无论是通过create() 还是save(),它都会返回创建的记录,而现在,我使用res.json(user) 溢出创建/返回的记录,以便我的Angular 处理用更新的信息填充我的视图
现在,我知道使用 Sequelizes find() 和 findAll() 方法,我可以使用 findAll({ include: [{ all: true }]}) 或单独指定我的模型。
我想知道的是,在保存/创建时获取记录关联的最佳方式是什么
不幸的是,这不起作用:
models.User.create(newuser, {include:[{ all: true }]}).then(function(user) {
res.json(user);
});
我真的必须执行 另一个 find() 才能获得我的托管模型关联吗?
【问题讨论】:
-
如果你正在创建一个新对象,它的关联不会是空的吗?而且,对于现有对象,您是否使用
findOrCreate()?如果是这样,我相信您可以在第一个参数中提供include。如果您使用upsert(),则不确定这是否可能。 -
@st.never 不,例如,在创建我们的用户时,我们需要将他们与一个组相关联。在创建时,我已经提供了执行此操作所需的信息,但它只是不会获取。与此同时,我选择使用带有 include all 参数的
.reload()方法,这很有效,它只是很糟糕,它是另一个 sql 调用 yknow?
标签: javascript angularjs node.js sequelize.js angularjs-resource