node.js - sails.js - 我如何在模型 Hook beforeCreate 中访问 session 数据

标签 node.js model-view-controller orm sails.js waterline

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

我想要这样的东西:

Model = {

  attributes: {

  },

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

最佳答案

您确定生命周期回调是执行此操作的正确位置吗?因为它真的不是。如果明天您需要在 CLI 任务或其他无 session 任务中使用您的模型怎么办?此外,随着关联 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
}
...

关于node.js - sails.js - 我如何在模型 Hook beforeCreate 中访问 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989592/

相关文章:

javascript - 创建 Backbone.js 集合出现未定义错误

java - MVC设计问题

python - flask 和 Redis

python - 在标识映射之外强制使用 sqlalchemy ORM get()

java - 为什么我有映射异常?

node.js - 使用对象更新准备好的语句

javascript - 在父类构造函数调用的方法中访问子类字段

android - 为什么 NPM 无法读取我的依赖项?

node.js - 将文件上传到 aws 存储桶时,Multer 将 req.file 返回为未定义,并将 req.file.location 返回为位置未定义

c# - 分层应用程序中的验证