我创建了一个具有一对一关联的评论模型。
// 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()
,但我不知道如何实现。
创建:函数(req,res){
if (!req.session && !req.session.user)//使用 Passport
//错误
//save() ?
}
最佳答案
尝试这样的事情:
// 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
});
}
然后创建一个策略来检查以确保用户具有事件 session 。
// 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.');
};
关于sails.js - 如何在 Sails 的 Controller 中自定义创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946839/