页面呈现中不需要的 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
});
});
我在尝试检查 '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
});
});