я поставил проверку в политике роль:Как избежать множественного доступа БД для политики и контроллера 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
Я хотел бы знать, если есть достойный способ получить пост-запись из БД только один раз?
Я думаю, что вы можете поместить свой объект post под объект req и получить его на вашем контроллере. – jaumard
Если я поставил req.post = post в exec (function (err, post) в политике, могу ли я его заполнить в PostController? – Utility
Нет, вам нужно выложить его на политику или получить в базе данных на контроллере – jaumard