繁体   English   中英

如何在 web 页面上忽略“无法读取未定义的属性‘用户名’”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM