【发布时间】:2021-10-26 06:02:13
【问题描述】:
目前使用 mongoose 在仪表板上呈现管理员和用户信息,但我似乎无法呈现用户的 ID
这是我的代码
function ensureAuthenticated(req, res, next){
if(req.isAuthenticated()){
return next();
} else {
req.flash('error_msg', 'You are not logged in');
res.redirect('/dashboard/login');
}
}
/* GET Dashboard page. */
router.get('/dashboard', ensureAuthenticated, (req, res) => {
User.find({}, function(err, users) {
res.render('dashboard/index.hbs', {
pageTitle: 'Dashboard',
total: users.length,
users: users
});
});
});
<a href="/dashboard/users/{{_id}}">My profile</a>
为来自 repo 的问题添加了一些代码。添加了 ensureAuthenticated 功能。从我可以看到的模型和一切设置正确,作为一个例子 total 正确呈现,所以它得到了 users。
【问题讨论】:
-
您的视图获得
users- 您正在访问user。您的示例编码是缺少循环还是错误? -
@JoelPeltonen 我要做的就是在用户登录仪表板时呈现用户详细信息,因此不需要循环,因为我正在尝试呈现一个用户信息
-
当然 :) 但是,在您的控制器/路由中,您仍然设置了 `users:users` 并且在您的视图/模板中,您正在访问
user- 它们是两个不同的变量名 -
@JoelPeltonen 即使您将 users:users 设置为 user:user 也会得到相同的结果
-
你能分享更多的代码吗?此外,我刚刚注意到您使用的是 .id,但 mongo ID 通常为
_id,因此也可以尝试使用下划线。如果您在控制器中执行user:user,则结果形式User.find()将始终是一个数组,所以我实际上不建议您这样做。我的观点更多的是你思考变量数据类型的方向:)
标签: javascript express mongoose handlebars.js