6

我想更新模型的字段“所有者”。需要从包含当前登录并正在创建模型的用户的会话中获取所有者。

我想要这样的东西:

Model = {

  attributes: {

  },

  beforeCreate(values,next)
  {
    var owner_user_id  = req.session.user_id;
    values.owner = owner_user_id;
    next();
  }
}
4

1 回答 1

6

你确定生命周期回调是正确的地方吗?因为真的不是。如果明天您需要在 CLI 任务或其他无会话的任务中使用您的模型怎么办?此外,随着关联 API 的出现,可能会有一种更优雅的方式来实现它,但仍然在模型之外。所以,现在我只是将您的引用视为一个简单的值,将其设置在操作中(从您可以访问的位置req.session)并与其他属性一起传递给构造函数,例如:

...
// Controller code
module.exports = {
  index: function(req, res) {
    // Whatever gets you the values...

    values.owner = req.session.user_id;
    Model.create(values, function(err, model) {...});
  },
  // Other actions
}
...
于 2014-01-08T14:33:47.110 回答