login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
用户名:<input type="text" id="uname"><br/>
密码:<input type="password" id="upwd"><br/>
<input type="submit" value="提交" id="btn_smt">
</div>
<script src="js/jquery.min.js"></script>
<script>
$("#btn_smt").click(function(){
var uname=$("#uname").val();
var upwd=$("#upwd").val();
$.ajax({
type:"post",
url:"/login",
data:{uname:uname,upwd:upwd},
success:function(data){
if(data.code>0){
location.href="userlist.html";
}else{
alert(data.msg);
}
},
error:function(){
alert("网络故障,请检查");
}
})
});
</script>
</body>
</html>
userlist.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
a{
color: red;
cursor: pointer;
}
</style>
</head>
<body>
<a id="logout">退出</a><br/>
<table>
<thead>
<tr>
<td>tid</td>
<td>tname</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="js/jquery.min.js"></script>
<script>
$.ajax({
type:"get",
url:"/userlist",
success:function(data){
if(data.code==-1){
location.href="login.html";
}
var html="";
for(var i=0;i<data.length;i++){
html+="<tr>";
html+="<td>"+data[i].uid+"</td>";
html+="<td>"+data[i].uname+"</td>";
html+="</tr>";
}
$("tbody").html(html);
},
error:function(){
alert("网络故障,请检查");
}
});
$("#logout").click(function(){
$.ajax({
type:"get",
url:"/logout",
success:function(data){
if(data.code==1){
location.href="login.html";
}
},
error:function(){
alert("网络故障,请检查");
}
});
});
</script>
</body>
</html>
app.js
/**
* Created by web-01 on 2018/1/5.
*/
//1、加载对应模块
var http=require("http");
var express=require("express");
var session=require("express-session");
var cookieParser=require("cookie-parser");
var bodyparser=require("body-parser");
//2、创建连接池
var m=require("./init.js");
var pool=m.pool;
//3、创建服务器 3000
var app=express();
var server=http.createServer(app);
server.listen(3000);
//4、加载静态目录 public
app.use(express.static('public'));
//5、配置 body-parser
app.use(bodyparser.urlencoded({extended:false})); //bodyparser全小写
//6、配置session
app.use(cookieParser());//这里要加()
app.use(session({
secret:'spflinux',
name:'adminapp',
cookie:{maxAge:60*1000*30},
resave: false,
saveUninitialized: true
}));
//7、处理登录请求
app.post("/login",(req,res)=>{
var uname=req.body.uname;
var upwd=req.body.upwd;
var sql="SELECT uid FROM t_user WHERE uname=? AND binary upwd=?"; //一定记得加binary区分大小写
pool.getConnection((err,conn)=>{
if(err) throw err;
conn.query(sql,[uname,upwd],(err,result)=>{
if(err) throw err;
if(result.length>0){
req.session.sign=true;
res.json({code:1,msg:"登录成功"});
}else{
res.json({code:-1,msg:"用户名或密码有误"});
}
conn.release();
})
})
})
app.get("/",(req,res)=>{
res.sendFile(__dirname+"/public/"+"login.html");
})
app.get('/userlist',(req,res)=>{
console.log("req.session.sign="+req.session.sign);
if(req.session.sign==true){
var sql="SELECT uid,uname FROM t_user";
pool.getConnection((err,conn)=>{
if(err) throw err;
conn.query(sql,(err,result)=>{
if(err) throw err;
res.json(result);
});conn.release();
})
}else{
res.json({code:-1,msg:"需登录"});
}
})
app.get('/logout',(req,res)=>{
req.session.sign=false;
//console.log("退出");
res.json({code:1,msg:"退出"});
})
init.js
/**
* Created by web-01 on 2018/1/5.
*/
const mysql=require("mysql");
var pool=mysql.createPool({
host:'127.0.0.1',
user:"root",
password:"",
database:"test",
port:3306,
connectionLimit:25 //连接数量限制
});
module.exports.pool=pool;