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
}
...