Javascript 未定义变量(错误)
我尝试将errors变量(在本例中它是一个修复程序)从服务器发送到客户端,在客户端中它使用ejs模板引擎显示错误 该变量列出了错误medainte push,我在error.ejs中检索它们 问题是它没有意识到这一点 非常感谢Javascript 未定义变量(错误),javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我尝试将errors变量(在本例中它是一个修复程序)从服务器发送到客户端,在客户端中它使用ejs模板引擎显示错误 该变量列出了错误medainte push,我在error.ejs中检索它们 问题是它没有意识到这一点 非常感谢 user.controller.js const usersController = {}; usersController.renderSignUpForm = (req, res) => { res.render('users/signup'); }
user.controller.js
const usersController = {};
usersController.renderSignUpForm = (req, res) => {
res.render('users/signup');
};
usersController.signUp = (req, res) => {
let errors = [];
const { name, email, password, confirmPassword } = req.body;
console.log(req.body);
if (password != confirmPassword) {
errors.push({ text: 'Passwords do not match' });
}
if (password.length < 8) {
errors.push({ text: 'Passwords must be a least 8 characters.' });
}
if (errors.length > 0) {
res.render("users/signup", {
errors,
name,
email,
password,
confirmPassword
});
} else {
res.send('sign up successfully');
}
};
module.exports = usersController;
<div class="container mt-4">
<% for( let i = 1; i < errors.length; i++) {%>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<%= errors[i].text %>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<% } %>
</div>
const { Router } = require('express');
const router = Router();
//Importing Controllers
const { renderSignUpForm, signUp, renderSignInForm, signIn, logOut } = require('../controllers/users.controllers');
router.get('/users/signup', renderSignUpForm);
router.post('/users/signup', signUp);
router.get('/users/signin', renderSignInForm);
router.post('/users/signin', signIn);
router.get('/users/logout', logOut);
module.exports = router;
<%- include('../partials/head.ejs')%>
<div class="container mt-4">
<div class="row">
<div class="col-md-4 mx-auto">
<div class="card">
<div class="card-header">
<i class="fa fa-user-plus mr-2" aria-hidden="true"></i> Account Register
</div>
<div class="card-body">
<form action="/users/signup" method="POST">
<div class="form-group">
<label for="inputName">Name<i class="fa fa-user ml-2" aria-hidden="true"></i></label>
<input type="text" name="name" class="form-control" id="inputName" placeholder="Name" autocomplete="off" autofocus>
</div>
<div class="form-group">
<label for="inputEmail">Email address<i class="fa fa-envelope-o ml-2" aria-hidden="true"></i></label>
<input type="email" name="email" class="form-control" id="inputEmail" placeholder="Email" autocomplete="off">
</div>
<div class="form-group">
<label for="inputPassword">Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
<input type="password" name="password" class="form-control" id="inputPassword" placeholder="Password" autocomplete="current-password">
</div>
<div class="form-group">
<label for="confirmPassword">Confirm Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
<input type="password" name="confirmPassword" class="form-control" id="confirmPassword" placeholder="Confirm Password" autocomplete="current-password">
</div>
<div class="form-group">
<button class="btn btn-danger btn-block">Sign Up</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<%- include('../partials/error.ejs')%>
<%- include('../partials/footer.ejs')%>
注册。ejs
const usersController = {};
usersController.renderSignUpForm = (req, res) => {
res.render('users/signup');
};
usersController.signUp = (req, res) => {
let errors = [];
const { name, email, password, confirmPassword } = req.body;
console.log(req.body);
if (password != confirmPassword) {
errors.push({ text: 'Passwords do not match' });
}
if (password.length < 8) {
errors.push({ text: 'Passwords must be a least 8 characters.' });
}
if (errors.length > 0) {
res.render("users/signup", {
errors,
name,
email,
password,
confirmPassword
});
} else {
res.send('sign up successfully');
}
};
module.exports = usersController;
<div class="container mt-4">
<% for( let i = 1; i < errors.length; i++) {%>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<%= errors[i].text %>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<% } %>
</div>
const { Router } = require('express');
const router = Router();
//Importing Controllers
const { renderSignUpForm, signUp, renderSignInForm, signIn, logOut } = require('../controllers/users.controllers');
router.get('/users/signup', renderSignUpForm);
router.post('/users/signup', signUp);
router.get('/users/signin', renderSignInForm);
router.post('/users/signin', signIn);
router.get('/users/logout', logOut);
module.exports = router;
<%- include('../partials/head.ejs')%>
<div class="container mt-4">
<div class="row">
<div class="col-md-4 mx-auto">
<div class="card">
<div class="card-header">
<i class="fa fa-user-plus mr-2" aria-hidden="true"></i> Account Register
</div>
<div class="card-body">
<form action="/users/signup" method="POST">
<div class="form-group">
<label for="inputName">Name<i class="fa fa-user ml-2" aria-hidden="true"></i></label>
<input type="text" name="name" class="form-control" id="inputName" placeholder="Name" autocomplete="off" autofocus>
</div>
<div class="form-group">
<label for="inputEmail">Email address<i class="fa fa-envelope-o ml-2" aria-hidden="true"></i></label>
<input type="email" name="email" class="form-control" id="inputEmail" placeholder="Email" autocomplete="off">
</div>
<div class="form-group">
<label for="inputPassword">Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
<input type="password" name="password" class="form-control" id="inputPassword" placeholder="Password" autocomplete="current-password">
</div>
<div class="form-group">
<label for="confirmPassword">Confirm Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
<input type="password" name="confirmPassword" class="form-control" id="confirmPassword" placeholder="Confirm Password" autocomplete="current-password">
</div>
<div class="form-group">
<button class="btn btn-danger btn-block">Sign Up</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<%- include('../partials/error.ejs')%>
<%- include('../partials/footer.ejs')%>
账户登记簿
名称
电子邮件地址
密码
确认密码
注册
您开始按位置0运行错误数组;
数组从位置0开始,将其更改为从零开始
<div class="container mt-4">
<% for( let i = 0; i < errors.length; i++) {%>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<%= errors[i].text %>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<% } %>
</div>
&时代;