首先安装npm工具,该工具node.js已经集成,打开cmd,输入:npm install
下载第三方模块的命令:
进入:www.npmjs.org
npminstall mysql 第三方管理mysql数据模块
npm install express 第三方管理http请求
npm install express-session 第三方管理session
npm install body-parser 第三方处理post请求数据
npm install cors 第三方处理跨域请求
express 是一个基于nodejs中http协议的高层模块,简化web服务器端应用开发v4版本中定义
express是一个用于接收客户端请求,返回相应消息的工具。www.expressjs.com.cn
下载express npm install express
//nodejs 登录
//1:加载对应模块
// http
// express
// mysql
// body-parser 处理post请求参数
const http = require("http");//加载模块
const express = require("express");//加载express模块
const mysql = require("mysql");//加载数据库模块
const bodyParser = require("body-parser");
//2:创建连接池
var pool = mysql.createPool({
host:"127.0.0.1",
user:"root",
password:"",
database:"yijian",
port:3306,
connectionLimit:25
});
//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}));
//6:处理登录请求
//post /login req.body.uname req.body.upwd
app.post("/login",(req,res)=>{
var uname = req.body.uname;
var upwd = req.body.upwd;
var sql = "SELECT uid FROM yi_user";
sql += " WHERE uname = ? AND upwd = ?";
pool.getConnection((err,conn)=>{
if(err)throw err;
conn.query(sql,[uname,upwd],(err,result)=>{
if(err)throw err;
if(result.length>0){
res.json({code:1,msg:"登录成功"});
}else{
res.json({code:-1,msg:"用户名密码有误"});
}
});
})
});
//6:处理登录请求 15:52--16:02
//get /userlist
//#pno 当前页码
//#pageSize 页大小
//{
// pno:1,
// pageSize:8,
// data:[],
// pageCount:6
//}
app.get("/userlist",(req,res)=>{
var output = {
pno:1, //当前页数
pageSize:1, //页大小
pageCount:1, //总页数
data:[] //当前页内容
};
//解决一个问题:
//发送二条sql语句,希望都执行完成再发送json
var progress = 0;
var pno = req.query.pno;
var pageSize = req.query.pageSize;
if(!pno){
pno = 1;
}
if(!pageSize){
pageSize = 8;
}
var sql = " SELECT uid,uname,email,phone";
sql += " FROM yi_user LIMIT ?,?";
//造型整型数值
var offset = parseInt((pno-1)*pageSize);
pageSize = parseInt(pageSize);
pool.getConnection((err,conn)=>{
if(err)throw err;
conn.query(sql,[offset,pageSize],(err,result)=>{
if(err)throw err;
output.pno = pno; //当前页数
output.pageSize = pageSize;//页大小
output.data = result //当前页内容
progress += 50;
if(progress == 100) {
res.json(output);
}
conn.release(); //关闭连接
});//query end
});//conn end
pool.getConnection((err,conn)=>{
if(err)throw err;
var sql = "SELECT count(uid) AS c";
sql += " FROM yi_user";
conn.query(sql,(err,result)=>{
if(err)throw err;
var count = result[0]["c"];
output.pageCount = Math.ceil(count/output.pageSize);
progress += 50;
if(progress==100) { //
res.json(output);
}
conn.release();
});
});
});
//模块二:删除指定用户
//17:30--17:40
//更新: (expire=='0'=>'1')
app.get("/userdel",(req,res)=>{
var uid = parseInt(req.query.uid);
pool.getConnection((err,conn)=>{
if(err)throw err;
var sql = "UPDATE yi_user SET expire = '1'";
sql += " WHERE uid = ? AND expire = '0'";
conn.query(sql,[uid],(err,result)=>{
if(err)throw err;
if(result.affectedRows>0){
res.json({code:1,msg:"删除成功"});
}else{
res.json({code:-1,msg:"删除失败"});
}
conn.release();
});
});
});