Meanjs находит результаты для модуля crud по идентификатору пользователя

Полный новичок в meanjs, использовал генератор yo-meanjs для создания проекта, а затем использовал подгенератор модуля CRUD, чтобы добавить модуль CRUD под названием Pets. В этом конкретном случае я хочу, чтобы пользователь, зарегистрировавшийся на сайте, добавлял домашних животных, которыми он владеет, например, имя питомца: «Woff», тип питомца: «собака» и т. д. Все это прекрасно работает, но когда я вхожу в систему как другой пользователь и перейдите к списку домашних животных - я вижу домашних животных, добавленных другими пользователями, так что просто список всех домашних животных, тогда как я хочу, чтобы пользователи видели только домашних животных, которых они добавили. Я начал искать, как я могу добиться этого, и я вижу, что после аутентификации user_id вошедшего в систему пользователя хранится в $scope.authentication.user._id и что добавленный мной модуль домашних животных включает свойство пользователя, которому назначено значение пользователя, создавшего запись о питомце. Я немного запутался в следующих шагах, хотя я подумал, что это, вероятно, потребует добавления маршрута и метода контроллера в общую папку, созданную для модуля CRUD домашних животных, но я не совсем уверен, поэтому я подумал, что протяну руку и спрошу кто-нибудь, если они сделали это, и если да, не могли бы вы перечислить необходимые шаги?


person jacko    schedule 02.11.2014    source источник


Ответы (1)


Если вы хотите показать каждому пользователю только объект (домашние животные), который он создал, вы можете не добавлять новый маршрут или метод контроллера, вы можете просто изменить запрос мангуста, который получает все объекты домашних животных, которые будут в: app\controllers\pets.server.controller.js, вы должны изменить метод создания примерно так:

exports.list = function(req, res) {
    Pet.find({'_user':req.user._id}).sort('-created').populate('user', 'displayName').exec(function(err, pets) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
            res.jsonp(pets);
        }
    });
};

так что просто добавьте свойства, которые вы хотите найти, и нужные значения в качестве объекта JSON в качестве параметра для метода mongoose find().

person yass    schedule 04.11.2014
comment
Спасибо Ясс - это сработало. Я изменил на Pet.find({'user':req.user._id}).sort... - person jacko; 10.11.2014