如何避免Sails.js策略和控制器的多个数据库访问?

我把策略中的angular色检查:

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中,我需要再次获取post(并可能填充一些相关的数据)

 update: function (req, res) { var postId = req.param('postId'); Post.findOne({id: postId}).populate('tags') .exec( function (err, post) { // Update the post here 

我想知道是否有一个体面的方式来从DB获取邮寄logging只有一次?

我会制定这个政策来“毁坏”实际的查询,以便用户条件自动附加到所有的请求。 通过这种方法,您可以使用蓝图操作来获取所有内容。

我自己做了这个,你可以看看那里的代码https://github.com/tarlepp/Taskboard/blob/angular/backend%2Fapi%2Fservices%2FRightsGet.js#L460

我希望这有帮助。