页面呈现中不需要的 EJS 变量的 NodeJS 未捕获引用错误

NodeJS Uncaught reference error for EJS variable that isn't required in page render

我在尝试检查 'error' 的 GET 变量 'message' 时收到未在页面呈现中使用的变量 'profile_image' 的未捕获引用错误。 'profile_image' 在 'partials/header' 中使用,但此特定渲染使用 'partials/header-shadow'。我在另一个具有相同部分的页面上使用类似的 <% if //condition {} %> 并且它工作正常,如果我从该页面删除 <% if //condition {} %> 语句它也可以正常工作.我不明白为什么这个特定页面不起作用,有什么想法吗?

这是 EJS:

<% include partials/index-header-shadow %>

<div class="container">
    <div class="col col-1-1">
        <div class="wrapper no-scroll">
            <div class="signup-form">
                <div class="signup-form-inner">
                    <h3>Sign Up</h3>
                    <% if ( message == "error") { %>
                    <span class="error">This email is already being used, you can login to your account by clicking the link below</span>    
                    <% } %>
                    <form action="/sign_up" method="post">
                        <input type="text" name="name" placeholder="Username" required/>
                        <span class="error">Please enter a username</span>
                        <input type="email" name="email" placeholder="Email Address" required/>
                        <span class="error">Please enter a valid email address</span>
                        <input type="password" name="password" pattern=".{6,}" placeholder="Password (minimum 6 characters)" required/>
                        <span class="error">Please enter a password</span>
                        <input type="hidden" name="profile_image" value="images/profile_images/user_icon.png"/>
                        <input type="submit" name="submit" class="submit-btn" value="Sign Up" />
                    </form>
                    <div class="login-link">
                        <a href="/login">Already have an account? Log in here</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<% include partials/footer %>

这是服务器渲染:

/* GET Sign_Up page. */
app.get('/sign_up',
  function(req, res){
   res.render('sign_up',
  {
    title: 'Utasko | Sign Up',
  });
});


/* GET Sign_Up POST data. */
app.post('/sign_up', passport.authenticate('signup', {
  successRedirect: '/login?message=success',
  failureRedirect: '/sign_up?message=error'
}));

您需要传递消息参数。你的情况

app.get('/sign_up',
  function(req, res){
   res.render('sign_up',
  {
    title: 'Utasko | Sign Up',
    message:req.query.message
  });
});