如何忽略网页上的 "Cannot read property 'username' of undefined"
How to ignore "Cannot read property 'username' of undefined" on a web page
这是 localhost:3000 上的主页或 ('/')。我希望这个主页以某种方式工作,以便当用户登录时,他们将显示他们的用户名。目前,这仅在用户登录时有效。但是,如果他们未登录,我想忽略该错误,以便任何人都可以在不登录的情况下访问该页面。如果有帮助,我正在使用护照在会话中对用户进行身份验证您可以在 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 !== undefined ? req.user.username : ""
})
})
您可以将可选的链接运算符与空值合并运算符一起使用。
app.get('/',(req, res) => {
res.render('home.ejs', {name: req?.user?.username ?? ''})
})
这是 localhost:3000 上的主页或 ('/')。我希望这个主页以某种方式工作,以便当用户登录时,他们将显示他们的用户名。目前,这仅在用户登录时有效。但是,如果他们未登录,我想忽略该错误,以便任何人都可以在不登录的情况下访问该页面。如果有帮助,我正在使用护照在会话中对用户进行身份验证您可以在 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 !== undefined ? req.user.username : ""
})
})
您可以将可选的链接运算符与空值合并运算符一起使用。
app.get('/',(req, res) => {
res.render('home.ejs', {name: req?.user?.username ?? ''})
})