我把角色策略檢查:如何避免Sails.js策略和控制器的多個數據庫訪問?
module.exports = function(req, res, next) {
var postId = req.param('postId');
var userId = req.session.user.id;
Post.findOne({id: postId})
.exec(function (err, post) {
if (err) { return next(err); }
if (!post) {
return res.notFound('Post not found');
}
if (post.author !== userId) {
return res.forbidden('Not the author');
}
next();
});
};
而在PostController中,我需要再次讀取該職位(以及可能的填充一些相關的數據)
update: function (req, res) {
var postId = req.param('postId');
Post.findOne({id: postId}).populate('tags')
.exec(function (err, post) {
// Update the post here
我想知道是否有隻有一次從DB獲取帖子記錄的體面方式?
我認爲你可以把你的帖子對象置於req對象下並將其檢索到你的控制器上 – jaumard 2015-04-04 07:44:01
如果我把req.post = post放在exec(function(err,post)策略中,我還可以在PostController中填充它嗎? – Utility 2015-04-04 09:20:12
沒有,你必須在策略上打開它或在控制器上檢索數據庫 – jaumard 2015-04-04 09:24:13