Sequelize model.update与关联

时间:2015-12-23 21:47:20

标签: express orm sequelize.js

我试图通过以下一个调用来更新hasOnebelongsTo模型(顺便说一下,使用create()){{1是一个返回的实例:

user

但是对于我的生活,我无法得到任何工作。我可以轻松调用user.update({ email: req.body.email, Profile: { name: req.body.name, gender: req.body.gender, location: req.body.location, website: req.body.website, } }).then(function(user) { //foo }); 并仅更改配置文件模型以及user.Profile.update({}),但嵌套将无效。功能不存在,没有很好地记录,或者我需要使用类似user.update({})的内容单独更新两者?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果有人需要,请发布此信息以供将来参考。到目前为止,我能弄清楚如何处理这个问题的唯一方法是使用Promise.all()。如果Sequelize的任何维护者都看到了这一点,那么我可以非常有助于澄清/添加一次更新相关模型的能力。

此处的工作代码(其中user是来自User.findById()的实例:

Promise.all([
  user.Profile.update({
    name: req.body.name || '',
    gender: req.body.gender || '',
    location: req.body.location || '',
    website: req.body.website || ''
  }),
  user.update({
    email: req.body.email || '',
  })
]).then(function() {
  req.flash('success', { msg: 'Profile information updated.' });
  res.redirect('/account');
});