node服务器端各接口代码
一、服务器段代码
/加载模块 express pool.js
const express = require("express");
const pool = require("./pool");
//创建服务器对象
var app = express();
//监听端口
app.listen(3000);
//指定静态目录
app.use(express.static("public"));
//加载跨域访问模块
const cors = require("cors");
app.use(cors({
origin: ["http://127.0.0.1:3001",
"http://localhost:3001"],
credentials:true
}));
//对session进行配置
//下载express-session并配置
const session=require("express-session");
app.use(session({
secret:"128位随机字符",//安全字符串
resave:false,//每次请求是否都更新数据
saveUninitialized:true,//初始化保存数据
cookie:{
maxAge:1000*60*60*10 //保存10小时
}
}));
//用户登录
app.post("/login", (req, res) => {
var uname = req.query.uname;
var upwd = req.query.upwd;
var sql = "select id from login where uname=? and upwd=?";
pool.query(sql, [uname, upwd], (err, result) => {
if(err)throw err;
if (result.length == 0) {
res.send({ code: -1, msg: "登录失败" });
} else {
var id = result[0].id;//获取当前用户Id
req.session.uid=id;//保存到session中
res.send({ code: 1, msg: "登录成功!" })
}
})
});
//商品搜索
app.get("/search",(req,res)=>{
var title=req.query.title;
var sql="SELECT * FROM laptop WHERE title like '%"+title+"%'";
pool.query(sql, [title], (err, result) => {
console.log(sql)
if (err) throw err;
if(result.length==0){
res.send({code:-1,msg:"找不到该商品"})
}else{
res.send({ code: 1, data: result });
}
})
});
//查询购物车列表
app.get("/cart",(req,res)=>{
var uid=req.session.uid;
console.log(uid)
var pid=req.query.pid;
var sql="select cart.id, lpic, num,cart.price,";
sql+=" title";
sql+=" from cart,laptop";
sql+=" where laptop.id=cart.pid";
sql+=" and cart.uid=?";
pool.query(sql,[uid],(err,result)=>{
if(err)throw err;
res.send({code:1,data:result});
})
});
//判断用户已登录,跳转到购物车页面,否则不跳转
app.get("/concart",(req,res)=>{
if(!req.session.uid){
res.send({code:-1,msg:"未登录,无法进入购物车"});
return;
}else{
var uid=parseInt(req.session.uid);
var sql="select * from login where id=?"
pool.query(sql,[uid],(err,result)=>{
if(err)throw err;
res.send({code:1,data:result});
console.log(result);
})
}
})
//将商品添加到购物车
app.get("/addcart",(req,res)=>{
if(!req.session.uid){
res.send({code:-1,msg:"请登陆"});
return;
}else{
var uid=parseInt(req.session.uid);
var pid=parseInt(req.query.pid);
var num=1;
var price=req.query.price;
var sql="select id from cart where pid=? and uid=?";
pool.query(sql,[pid,uid],(err,result)=>{
if(err)throw err;
if(result.length==0){
var sql=`insert into cart values(null,${num},${price},${pid},${uid})`
}else{
var sql=`update cart set num=num+1 where pid=${pid} and uid=${uid}`;
}
pool.query(sql,(err,result)=>{
if(err)throw err;
if(result.affectedRows>0){
res.send({code:1,msg:"添加到购物车成功"});
}else{
res.send({code:-1,msg:"添加到购物车失败"});
}
})
})
}
});
//删除购物车商品
app.get("/del",(req,res)=>{
//获取参数id
var id=req.query.id;
var sql="delete from cart where id=?";
pool.query(sql,[id],(err,result)=>{
if(err)throw err;
if(result.affectedRows>0){
res.send({code:1,msg:"删除成功"});
}else{
res.send({code:-1,msg:"删除失败"});
}
})
})
//个人中心
app.get("/me",(req,res)=>{
if(!req.session.uid){
res.send({code:-1,msg:"请登陆"});
}else{
var uid=req.session.uid;
var sql="select * from login where id=?";
pool.query(sql,[uid],(err,result)=>{
if(err)throw err;
res.send({code:1,data:result});
})
}
});
//退出登录状态
app.get("/esc",(req,res)=>{
var id = 0;//获取当前用户Id
req.session.uid=id;//保存到session中
res.send({ code: 1, msg: "成功退出" })
});
//获取商品评论列表
app.get("/info",(req,res)=>{
var uid=req.query.uid;
//console.log(uid)
var sql="select * from info where uid=?";
pool.query(sql,[uid],(err,result)=>{
if(err)throw err;
res.send({code:1,data:result});
})
})
//用户注册
app.post("/butrest",(req,res)=>{
var uname=req.query.uname;
var upwd=req.query.upwd;
var sql="select * from login where uname=?";
pool.query(sql,[uname],(err,result)=>{
if(err)throw err;
if(result.length!=0){
res.send({code:-1,msg:"该用户已经存在,禁止注册!"});
}else{
var sql=" insert into login values(null,?,?,'img/touxiang/01.png')";
pool.query(sql,[uname,upwd],(err,result)=>{
console.log(result)
if(err) throw err;
if(result.length==0){
res.send({code:-1,msg:"注册失败"});
}else{
res.send({code:1,msg:"注册成功!"});
}
})
}
})
})
//推荐商品,查询商品PID=1的所有商品
app.get("/recommend", (req,res) => {
var uid = req.query.pid
var sql="select * from laptop where uid=?";
//var sql ="select id,title,price,lpic";
//sql +=" from laptop where uid=?";
pool.query(sql, [uid], (err, result) => {
if (err) throw err;
res.send({ code: 1, data: result });
})
});
//商品详情
app.get("/deta",(req,res)=>{
var id=req.query.lid;
console.log(id);
//var sql="select * from laptop, detail where laptop.lid=detail.id and laptop.lid="+id;
var sql='select * from laptop,detail where laptop.id=detail.id and laptop.id=?';
pool.query(sql,[id],(err,result)=>{
if (err) throw err;
res.send({ code: 1, data: result });
})
});
//获取商品详情图片
app.get("/detals",(req,res)=>{
var pid=req.query.pid;
var sql="select img_dg from shopxq where pid=?";
pool.query(sql,[pid],(err,result)=>{
if(err) throw err;
res.send({code:1,data:result});
})
})
//商品分页显示
app.get("/laptop", (req, res) => {
var pno = req.query.pno;
var pageSize = req.query.pageSize;
if (!pno) { pno - 1 }
if (!pageSize) { pageSize = 7 }
var sql = "select * from laptop";
var offset = (pno - 1) * pageSize;
pageSize = parseInt(pageSize);
pool.query(sql, [offset, pageSize], (err, result) => {
if (err) throw err;
res.send({ code: 1, data: result });
})
});
//咨询栏目
app.get("/zixun",(req,res)=>{
var sql="select id,title,nr from zixun";
pool.query(sql,(err,result)=>{
if(err)throw err;
res.send({code:1,data:result});
})
});
//轮播图
app.get("/imagelist", (req, res) => {
var list = [
{ id: 1, img_url: "http://127.0.0.1:3000/img/lunbo/01.jpg" },
{ id: 2, img_url: "http://127.0.0.1:3000/img/lunbo/02.jpg" },
{ id: 3, img_url: "http://127.0.0.1:3000/img/lunbo/03.jpg" },
{ id: 4, img_url: "http://127.0.0.1:3000/img/lunbo/04.jpg" },
];
res.send(list);
});
二、数据库连接文件
//引入mysql库
const mysql=require("mysql");
//创建连接池
var pool=mysql.createPool({
host:"127.0.0.1",//服务器端地址
user:"root",//服务器用户名
password:"",//服务器密码
database:"hbz12330",//数据库名称
port:3306,数据库端口号
connectionLimit:50
});
module.exports=pool;