我创建了一个具有一对一关联的评论模型。
// 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() ?
}
答案 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.');
};