javascript - 在 .ejs 文件中获取当前页面?

标签 javascript html node.js ejs

我有一个简单的 Node.js 网络应用程序,具有通过护照登录/注册的功能。在导航栏中,我有两个按钮:登录和注册。我想做的是当用户在注册页面上时,只在导航栏中显示登录按钮,当用户在登录页面上时只在导航栏中显示注册按钮。如何在我的 header ejs 文件中实现此目的?

我试过这个:

<% if (document.URL.contains("login")) { %>
    <li><a href="/login">Sign In</a></li>
<% } else { %>
    <li><a href="/register">Sign Up</a></li>
<% } %>

这个问题是文档变量没有在我的 ejs locals 中定义......我不认为我可以将它定义为本地?至少当我尝试时,我得到一个错误,即文档未定义......这是有道理的,因为这是在 app.js 文件中完成的。

我怎样才能实现这个功能?

谢谢!

最佳答案

当您呈现您的 ejs 文件时,提供一个带有标题的 json 对象。

以下将包含在您的快速 route :

app.route('/login')
    .get((req, res) => {
        res.render('loginTemplateEjs', { title: 'login'});
});

然后在你的ejs代码中:

<% if (title == "login" { %>
    <li><a href="/login">Sign In</a></li>
<% } else { %>
    <li><a href="/register">Sign Up</a></li>
<% } %>

关于javascript - 在 .ejs 文件中获取当前页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43432250/

相关文章:

css - 如何使用 CSS 对齐多个 div

javascript - li toggle 和 toggleclass children child

node.js - Node js异步mongodb find()查询多次调用

node.js - 更改不同级别的 bunyan 日志颜色

javascript - 使用 slice() 只返回前 5 个结果

javascript - 窗口位置 href 更改不会重新加载

javascript - 带有函数的 TypeScript 接口(interface)

javascript - 如何收集 AngularJS 中已选择的行的数据?

javascript - 使用浏览器从服务器拉取消息来更新消息

node.js - remy inliner 命令行工具返回 path.existsSync 现在称为 `fs.existsSync`