[英]How to ignore “Cannot read property 'username' of undefined” on a web page
这是 localhost:3000 上的主页或 ('/')。 我希望这个主页以某种方式工作,以便当用户登录时,他们会显示他们的用户名。 目前,这仅在用户登录时有效。但是,如果他们未登录,我想忽略该错误,以便任何人都可以在没有登录的情况下访问该页面。如果有帮助,我正在使用护照通过 session 对用户进行身份验证您可以查看我的主路由以及我在 home.ejs 文件中执行 ejs 的片段。
//Home page route in js
app.get('/',(req, res) => {
res.render('home.ejs', {name: req.user.username})
})
//.ejs file snipped
<li>
<%if(locals.name){%>
welcome <%=name %>
<form class="" action="/Users/logout?_method=DELETE" method="post">
<button type="submit" name="button">Logout</button>
</form>
<%}%>
</li>
您可以将可选链接运算符与空值合并运算符一起使用。
app.get('/',(req, res) => {
res.render('home.ejs', {name: req?.user?.username ?? ''})
})
这应该工作:)
app.get('/',(req, res) => {
res.render('home.ejs', {
name: req.user !== undefined ? req.user.username : ""
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.