sails.js - как я могу получить доступ к данным сеанса в хуке модели перед созданием

Я хочу обновить поле "владелец" модели. Владелец должен быть выбран из сеанса, который содержит пользователя, который в данный момент вошел в систему и создает модель.

Я хочу что-то вроде этого:

Model = {

  attributes: {

  },

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

1 ответ

Решение

Вы уверены, что обратный вызов жизненного цикла является правильным местом для этого? Потому что это действительно не так. Что, если завтра вам понадобится использовать вашу модель в задаче 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
}
...
Другие вопросы по тегам