如何在Sails

时间:2016-04-29 20:22:07

标签: sails.js waterline

我创建了一个具有一对一关联的评论模型。

// api/models/Comment.js
module.exports = {
  attributes: {
    user: {
      model: 'user',
      unique: true,
    },

    comment: {
      type: 'string'
    },
  }
};

用于创建它的HTML表单。

<form method="POST" action="/comment">
    <!-- send logged user -->
    <input type="text" name="workingRegion" placeholder="City">
    <input type="submit" value="submit">
</form>

如何在创建注释之前添加userId(假设用户使用Passport.js(req.session.user中的userId)进行了记录?

我在考虑在CommentController中定制create(),但我不知道如何。     create:function(req,res){         if(!req.session&amp;&amp;!req.session.user)//使用Passport             //错误

    //save() ?
}

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

// api/controllers/CommentController.js

create: function(req, res) { 
    var params = req.params.all();
    params.user = req.session.user.id;

    Comment.create(params)
    .exec(function(err, comment) {
        //do stuff here
    });
}

然后创建一个检查以确保用户具有活动会话的策略。

// api/policies/sessionAuth.js

module.exports = function(req, res, next) {
  // this assumes you created an "authenticated" flag for the session
  // when the user logged in
  if (req.session.authenticated) {
    return next();
  }

  return res.forbidden('You are not permitted to perform this action.');
};