首页 > 解决方案 > Node.js - 渲染一个未定义的变量

问题描述

也许标题的名称是错误的,但我有一个具体的问题。如果用户是管理员,我想做的是显示编辑和删除帖子的可能性。我有一个名为 currentUser 的局部变量,它专门保存用户名、密码和角色的数据。如果用户已登录,这行代码可以正常工作,但我遇到的问题是局部变量中没有数据时。如果我给出一个语句 if(currentUser == undefined or null) 我仍然得到一个错误并且该站点没有呈现(我得到的错误是角色未定义)。由于我对此还很陌生,我相信 currentUser 数据来自护照 js 的中间件功能。我的问题是当 currentUser 未定义时如何呈现页面。

提前致谢!

<% menu.forEach(function(menu){ %>
                <div class="col-lg-4 col-md-6 col-12 p-2 m-0 d-inline-block">
                    <div class="card" style="width: 22rem; ">
                        <img class="card-img-top img-fluid" src="<%= menu.pictureUrl %>" alt="Card image cap">
                        <div class="card-body">
                            <div style="height: 9rem;">
                                <h5 class="card-title"><%= menu.meal %></h5>
                                <div style="height: 4rem;">
                                    <p class="card-text"><%= menu.description %></p>
                                </div>
                                <div style="height: 4rem;">
                                    <p class="card-text"><strong><%=menu.price %>,00 Kn</strong></p>
                                </div>
                            </div>
                            <% if(currentUser.role == undefined){ %>
                            <a href="#" class="btn btn-primary">Stavi u košaricu</a>
                            <%} else if(currentUser.role === "admin"){ %>
                            <a href="/menu/<%=menu._id%>/edit" class="btn btn-warning">Uredi</a>
                            <div class="d-inline">
                                <form class="d-inline" action="/menu/<%=menu._id%>?_method=DELETE" method="post"><button
                                        class="btn btn-danger">Obriši</button></form>
                            </div>
                            <%}%>
                        </div>
                    </div>
                </div>
                <% }); %>
                        </div>
                    </div>
                </div>

标签: node.jsexpresspassport.js

解决方案


推荐阅读