所需:Express+MySQL数据库 +Vue
首先在Express创建服务端并且连接数据库
// 连接数据库
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'webdemo01'
});
// 调用连接数据库
connection.connect();
在解决跨域问题
// 解决跨域问题
app.all("*",function(req,res,next){
// 设置允许跨域的域名,*代表允许任意域名跨域
res.header('Access-Control-Allow-Origin','*');
// 允许的header类型
res.header('Access-Control-Allow-Headers','content-type');
// 跨域允许的请求方式
res.header('Access-Control-Allow-Methods','DELETE,PUT,POST,GET,OPTIONS');
if(req.method.toLowerCase() == 'options')
res.send(200); // 让options 尝试请求快速结束
else
next();
})
先写一个Post注册接口
app.post('/enroll',function(req,res){
}
注册接口思路是:向数据库查询有没有相同的用户名,如果有则返回注册失败,没有则注册成功
// 向数据库查询用户名
var addSql = "select * from `users` where `account` = ?";
var addSqlParams = [req.body.account];
connection.query(addSql,addSqlParams,function(err,result){
if(err){
console.log("[INSERT ERROR] - ",err.message);
return;
}
查询完后判断数据库返回服务端的数据是否是空列表,如果是空列表 则数据库没查到该用户名 否则就是查到了
// 拿到数据库返回来的结果判断长度是否为零, 如果不为零则就是已经有用户名了
if(result.length != 0){
console.log(result);
res.send({conde:'-1',msg:'用户已存在'})
}else{
console.log(result);
// 向数据库添加账号和密码
var addSql = "INSERT INTO `users`(`account`,`pwd`) VALUES(?,?)";
var addSqlParams = [req.body.account,req.body.pwd];
// 增
connection.query(addSql,addSqlParams,function(err,result){
if(err){
console.log("[INSERT ERROR] - ",err.message);
res.send({code:-2,msg:"注册失败"});
return;
}
res.send({conde:1,msg:"注册成功"});
});
}
这样注册接口就写好了
登录接口其实和注册接口有一异曲同工之处
也是先向数据库上传账号和密码, 然后让数据库进行对比, 如果对比完数据库返回来是空列表, 则为账号密码错误, 反之则为登陆成功
// 登录接口
app.post('/login',function(req,res){
// console.log(req.body);
let loginSuc = false
var addSql = "select * from `users` where `account` = ? and `pwd` = ?";
var addSqlParams = [req.body.account,req.body.pwd];
// 增
connection.query(addSql,addSqlParams,function(err,result){
if(err){
console.log("[INSERT ERROR] - ",err.message);
res.send({code:-2,msg:"登录失败"});
return;
}
if(result.length != 0){
res.send({conde:1,msg:"登陆成功"});
loginSuc = true
}else{
res.send({conde:-1,msg:"账号或密码错误"})
}
console.log(result);
});
})
可能我写的没有那些大佬的后台登陆那么完善, 比较适合新手练练
立志成为全栈!