如何忽略网页上的 "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 ?? ''})
})