登录页
//渲染登录页模板
module.exports = (req, res) => {
res.render('admin/login', {})
}
登录页提交表单
配置body-parser要在配置路由之前,否则会报req.body undefined的错
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: false
}));
提交前验证输入的邮件地址和密码是否为空
$('#loginForm').on('submit',function(){
var result=serializeToJson($(this));
console.log(result);
if(result.email.trim().length==0){
alert('请输入邮件地址');
return false;
}
if(result.password.trim().length==0){
alert('请输入密码');
return false;
}
})
其中,serializeToJson方法作为解析表单的公共方法抽取出来
function serializeToJson(form) {
var result = {};
form.serializeArray().forEach(item => {
result[item.name] = item.value;
})
return result;
}
登录页提交表单验证如下
module.exports = async(req, res) => {
let {
email,
password
} = req.body;
//服务端再次验证
if (email.trim().length == 0 || password.trim().length == 0) {
return res.status(400).render('admin/error', {
msg: '邮件地址或者密码错误'
})
}
const user = await User.findOne({
email: email
});
//邮箱地址存在
if (user) {
//比对密码
if (password == user.password) {
res.redirect('/admin/user');
} else {
res.status(400).render('admin/error', {
msg: '邮件地址或者密码错误'
})
}
} else {
res.status(400).render('admin/error', {
msg: '邮件地址或者密码错误'
})
}
}