3

meanjs 的新手,使用 yo generator-meanjs 创建项目,然后使用 CRUD Module Sub-Generator 添加一个名为 Pets 的 CRUD 模块。在这种特殊情况下,我希望在该网站上注册的用户添加他们拥有的宠物,例如 petname: 'Woff'、pettype: 'dog' 等。这一切都很好,但是当我以另一个用户身份登录时转到宠物列表 - 我看到其他用户添加的宠物 - 所以只是所有宠物的列表,而我想要的是让用户只看到他们添加的宠物。我开始研究如何实现这一点,我发现在身份验证后登录用户的 user_id 保存在 $scope.authentication.user._id 中,并且我添加的 pets 模块包含一个用户属性,该属性被分配创建宠物条目的用户的值。一世'

4

1 回答 1

3

如果您只想向每个用户显示他创建的对象(宠物),则可以避免添加新路由或控制器方法,您只需修改获取所有宠物对象的 mongoose 查询,它将位于:app\controllers\pets.server.controller.js,您应该将 create 方法修改为:

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() 方法即可。

于 2014-11-04T13:45:50.733 回答