javascript - 用户连接 Passport 节点时在导航栏中显示选项
问题描述
如果有人连接,我希望我的导航栏显示“个人资料:{USER}”,否则显示一组 Sing up/Login 选项卡。
要点是:我正在使用 EJS,在 /views 文件夹中的 /partial 文件夹中具有单独的“head.ejs”和“header.ejs”esctions。
在 index.ejs 上,我可以显示我早期通过的内容:
res.render('index.ejs', {username: req.user.username})
但是我还没有成功地将这个“用户名从我的 index.ejs 传递给我的 header.ejs,我的导航栏在哪里。
我的另一个问题是导航栏上的日志记录(我使用 isLoggedin),我有一个:未定义函数 isLoggedin。
非常欢迎任何帮助或提示!:)
编辑:到目前为止,我得到了 header.ejs:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/stock">Stock</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/login">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/registerUser">Add User ADMIN ONLY</a>
</li>
<li class="nav-item">
<span class="nav-link"> Profile of : <%=username %> </span>
</li>
<li class="nav-item">
<a class="nav-link" href="/logout">Logout</a>
</li>
</ul>
</nav>
这是我的 index.ejs(部分/头部是纯 HTML)
<!DOCTYPE html>
<html lang="en">
<head>
<%- include('./partial/head'); %>
</head>
<body>
<head>
<%- include('./partial/header',{username: username}); %>
</head>
然后这是我的代码的获取索引部分:
app.get('/', isLoggedIn, (req, res) => {
db.collection('installations').find().toArray()
.then(results => {
res.render('index.ejs', {installation: results,username:
req.user.username})
})
.catch(error => console.error(error))
})
解决方案
尝试放入:
"Profile of : {{username}}"
推荐阅读
- javascript - 未处理的 Promise Rejection:在条件下集成异步功能
- material-ui - 材质 UI:手动突出显示 xgrid 行
- forms - 表单识别器标签编辑器中未显示的图像
- cypress - Cypress.log 突出显示多个元素
- kubernetes - 如何为基于 Helm 的 Hazelcast 部署定义 MapStore
- amazon-web-services - 如何在无服务器应用程序中使用 middy 将 co-relationId 添加到 pino 记录器
- c++ - vector::erase 失败,二进制表达式的操作数无效(T 和 const T)
- excel - 如何为文档级 VSTO 模板创建安装文件?
- c# - 在 kafka 中手动提交偏移量
- javascript - 使用 js `map` 形成一个新的扁平对象