我目前正在完成我的服务器的身份验证端,需要一些帮助。我正在尝试禁用和启用特定的选项卡,这取决于用户是否通过身份验证。因为我正在跟踪一个video (part 8),所以作者在HTML文件中使用if条件( {{# if }} {{/if}} )来检查app.js文件中的某个变量是否为真。我试过了,但没有成功。是否需要在HTML文件的顶部传递?或者有没有更好的方法呢?
app.js:
app.use(function(req, res, next) {
res.locals.isAuthenticated = req.isAuthenticated(); //variable in question
next();
});
HTML:
<ul class="nav navbar-nav navbar-right">
{{#if isAuthenticated}} //check if this variable is true or not and if so, show the following elements
<li class="nav-item" class="navbar-right">
<a class="nav-link" href="/Profile">Profile</a>
</li>
<li class="nav-item" class="navbar-right">
<a class="nav-link" href="/Logout">Logout</a>
</li>
{{else}}
<li class="nav-item" class="navbar-right">
<a class="nav-link" href="Register.html">Register</a>
</li>
<li class="nav-item" class="navbar-right">
<a class="nav-link" href="Login.html">Login</a>
</li>
{{/if}}
</ul>
提前感谢!
编辑1:更好的解释
发布于 2018-06-15 05:04:17
最好的选择是使用视图引擎(例如EJS),然后使用给定的变量呈现视图。
app.set('view engine', 'ejs')
^设置视图引擎(首先是npm install ejs
)
app.set('views', './views')
^允许您设置视图目录
然后创建视图目录,例如index.ejs文件:
<h1> <%= title %> </h1>
接下来,写下你的路线:
app.get('/', (req, res) => {
res.render('index', { title: 'Sample title' }) // refers to views/index.ejs
})
在render方法中,您可以传递一个带参数的对象(第二个参数),您可以在视图中使用这些参数。更多信息:http://www.embeddedjs.com/
https://stackoverflow.com/questions/50865813
复制相似问题