我正在开发一个网络应用,每个用户都应该看到自己的类别。因此,如果我以user1身份登录,则应显示user1自己的类别,如果我以user2身份登录,则应仅显示user2的类别。
现在,无论我登录哪个用户,它都会显示所有类别。 我正在使用expressjs和mongoose。
现在这就是我获取类别的方式:
// MONGOOSE/MODEL CONFIG
var categorySchema = new mongoose.Schema({
title: String,
image: String,
shop: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
}
});
// MONGOOSE/MODEL CONFIG
var UserSchema = new mongoose.Schema({
username: String,
password: String,
});
UserSchema.plugin(passportLocalMongoose);
descriptions <- var_label(data_raw) %>%
as_tibble() %>%
gather(key = variable, value = description)
答案 0 :(得分:0)
使用findOne
函数并将其传递给指定每个用户的变量。例如,我传递了从id
对象获得的req
。
app.get("/category", function(req, res) {
// var id = get id or other specific key from req
Category.findOne({_id: id}, function(err, foundCategories) {
if (err) {
res.redirect("/panel-admin");
} else {
res.render("category", { Categories: foundCategories });
}
});
});
答案 1 :(得分:0)
我不确定赛义德的方法是否有效,因为我们只是加载/categories
而不是/categories/:id
,所以不会有任何信息在req.params.id
。
我的应用中使用req.user._id
的内容非常类似,可以用来查找shop.id
等于该用户的所有类别。
我已稍微修改了我的代码以使用您的参考资料:
router.get("/category", middlewareObj.isLoggedIn, function(req,res) {
Category.find({"shop.id": req.user._id},function(err,allCats){ //Only find categories linked to current user
if (err) {
res.redirect("/panel-admin");
} else {
res.render("category", { Categories: allCats });
}
});
});