我是MEANJS的新手,经过几天的谷歌研究后,我找不到一个好方法和一个很好的教程来学习如何制作一种文章模块(如MEANJS启动器中的模块)属于用户。
现在我的crud模块运行良好,但所有用户都会显示所有数据。我只是希望用户可以添加文章(这里有另一个名称,但无论如何),只有这个用户才能看到这篇文章。
我在这里找到你的问题,你似乎已经实现了一种我正在尝试的东西。所以,如果你有任何提示或任何资源来帮助我,我会起来的!当然,我已经阅读了关于人口的猫鼬文档部分,我确信这就是它,但仅此一点很难。我已经尝试链接我的用户模块和文章模块但不起作用。
感谢您的时间,并有一个快乐的编码日:) 来自巴黎的问候。
答案 0 :(得分:0)
如果您检查mongodb条目的文章,它已经拥有创建该文章的用户ObjectId:
> db.articles.find()
{ "_id" : ObjectId("55c7751dbafe1a306b6ce54d"), "user" : ObjectId("55c774f9bafe1a306b6ce54c"), "content" : "My latest test. another info", "title" : "Test", "created" : ISODate("2015-08-09T15:43:25.467Z"), "__v" : 0 }
{ "_id" : ObjectId("55c7c2edd4bc5f277b775ba9"), "user" : ObjectId("55c774f9bafe1a306b6ce54c"), "content" : "ATESTE", "title" : "TESTE", "created" : ISODate("2015-08-09T21:15:25.762Z"), "__v" : 0 }
>
点击"列出文章"加载所有文章的原因菜单条目是因为articles.server.controller.js中文章的列表实现不限制查找仅加载已记录的用户文章,默认实现加载来自mongodb的所有文章:
/**
* List of Articles
*/
exports.list = function (req, res) {
Article.find().sort('-created').populate('user', 'displayName').exec(function (err, articles) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(articles);
}
});
};
我从来没有尝试过,但我相信做出你想做的最简单的方法就是改变那个电话,让它有一个标准,只加载登录用户的文章,如:
/**
* List of Articles
*/
exports.list = function (req, res) {
Article.find({user: req.user}).sort('-created').populate('user', 'displayName').exec(function (err, articles) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(articles);
}
});
};
这个或类似的东西(我没有测试过)现在应该只带来登录用户创建的文章。查看mongoose查询here.
的详细信息