【发布时间】:2020-03-09 14:10:15
【问题描述】:
我想通过从我的数据库中获取用户名来打印当前登录的用户。
在我的模型中,用户名属性包含以下架构:
{
type: String,
required: true
}
index.js:
const users = require('../model/db');
router.get('/profiles/instructor', function (req, res, next) {
users.find({}, 'username', (err, doc)=>{
if(err){
console.log('err while finding on instructor at index.js => ' + err)
}else{
console.log(doc)
res.render('./profiles/instructor', {
title: 'Courstak | Instructor Profile',
name: doc
// etc......
})
ex.hbs:
<h5>{{name}}</h5>
我遇到的问题是,当我打开我的网站时,它会显示数据库中的所有用户,而不仅仅是当前登录的用户:
错误截图:
【问题讨论】:
-
对于这么多缺失的信息很难提供帮助。用户如何登录?你在哪里存储会话信息?如果没有某种登录机制/会话信息,您的应用程序应该如何知道它需要显示哪个用户?简短的回答是;显示所有用户是因为您正在查询所有用户而不是以任何方式过滤。
users.find({}, 'username', (err, doc)=>{运行以下查询返回每个文档,只有用户名字段:users.find({}, 'username',,这会将所有数据传递到您的模板:name: doc这就是显示每个用户的原因。 -
使用护照本地策略创建的登录
-
我假会话
标签: node.js express mongoose handlebars.js passport.js