我对MEANJS非常陌生,经过几天的谷歌研究,我找不到一个好的方法和一个很好的教程来学习如何使一种文章模块(就像MEANJS初学者中的文章模块)属于用户。
目前,我的crud模块运行良好,但所有数据都显示给所有用户。我只希望用户可以添加文章(这里有另一个名称,但无论如何),只有这个用户可以看到这篇文章。
我在这里找到你的问题,你看上去就像我正在尝试的一样。所以,如果你有任何提示或资源来帮助我,我就起来了!当然,我读过猫鼬的关于人口的部分,我相信这就是它,但单是这一点是很难的。我已经尝试链接我的用户模块和文章模块,但不起作用。
谢谢你的时间,祝你有一个快乐的编码日:)来自巴黎的贺卡。
发布于 2015-08-10 01:10:46
如果您检查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);
}
});
};这个,或者类似的东西(我没有测试它)现在应该只带来登录的用户创建的文章。查看猫鼬查询这里。的细节
https://stackoverflow.com/questions/31893023
复制相似问题