【问题标题】:sails.js - how can I acess session data in Model hook beforeCreatesails.js - 如何在模型钩子 beforeCreate 中访问会话数据
【发布时间】:2014-01-26 04:42:07
【问题描述】:
我想更新模型的字段“所有者”。需要从包含当前登录并正在创建模型的用户的会话中获取所有者。
我想要这样的东西:
Model = {
attributes: {
},
beforeCreate(values,next)
{
var owner_user_id = req.session.user_id;
values.owner = owner_user_id;
next();
}
}
【问题讨论】:
标签:
node.js
model-view-controller
orm
sails.js
waterline
【解决方案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
}
...