2.1: 学子商城--用户登陆vue
用户登陆商城用户操做行为,操做用户输入用户名和密码 node
点击登陆按钮,一种状况登陆成功 一种状况登陆失败mysql
"用户名或密码有误请检查"ajax
2.2:如何实现用户登陆算法
(1)数据库 xz_login 用户登陆表[id;uname;upwd]sql
id INT数据库
uname VARCHAR(25)json
upwd VARCHAR(32) 加密处理安全
xz_login服务器
1 tom 123
2 jerry 123
知识扩展:加密经过复杂算法将明文加密转换密文保存
原来密码 123(明文) 加密 219ds98kjkjds9832wiu32(密文)
知识扩展:单向加密 md5 加密
在mysql数据库有一个函数md5('123')
知识扩展:如何提升安全性 让用户密码8位以上
大写小写数字特殊符号 ABcOO0_9
操做: upwd VARCHAR(32)
(2)node.js(技巧)
-请求方法 get 请求地址 /login
-参数 用户名密码
-sql SELECT id FROM xz_login
WHERE uname = ? AND upwd = md5(?)
技巧:用户输入密码加密后与数据库密文比较
pool.quey(sql,[uname,upwd],(err,result)=>{
if(result.length==0) 用户名或密码错误
})
-json {code:1,msg:"登陆成功"}
{code:-1,msg:"用户名或密码错误"}
(3)脚手架表单
*-建立组件 src/components/home/Login.vue
*-组件分配路径 /Login
*-建立卡片 mui
*-在卡片建立表单
#不要添加action属性
#登陆按钮 <input type="button" value="登陆" />
-为 button绑定点击事件发送 ajax
(4)差一点若是用户登陆成将用户编号 id保存服务器端对象
session
2.3: 学子商城--购物车
购物车保存用户想购物买商品临时对象
购物车能够保存在
(1)数据库 ok
(2)cookie
2.4: 学子商城--将商品添加至购物车-开发数据库
xz_cart 购物车表 id count price pid uid
id 编号;count 购买数量;price 购买时价格;pid 购物商品编号;
uid 登陆用户编号
2.5: 学子商城--将商品添加至购物车-node.js(重点 非阻塞)
请求方式 GET 请求路径 /addcart
参数:pid/count/uid/price
sql:
-查询当前用户是否己经将商品添加至购物车
SELECT id FROM xz_cart WHERE pid = ? AND uid = ?
-更新数量
UPDATE xz_cart SET count=count+ num WHERE pid=? AND uid=?
-将商品信息添加购物车
INSERT INTO ....
json
{code:1,msg:"商品添加成功"}
2.6: 学子商城--将商品添加至购物车-node.js解决阻塞问题
(1)SELECT id FROM xz_cart WHERE uid = ? AND pid = ?
pool.query(sql,[uid,pid],(err,result)=>{
#回调函数,何时调用函数
if(result.length==0){
var sql = "INSERT ..."
}else{
var sql = "UPDATE..."
}
(2)pool.query(sql,(err,result)=>{
})
})
常见错误
1: 没法访问此网站 检查node.js 出错信息
缘由:node.js由于出错中止工做
SQL syntax sql语句不正确附近
2: Table 'xz.xz_cart' doesn't exist
xz_cart1 表不存在
缘由:表名 拼写错误/ 表不存在
3: Unknown column 'count1' in 'field list'
缘由:列名不正确
2.7: 学子商城--将商品添加至购物车-脚手架
(1)GoodInfo.vue
(2)有一个按钮 "加入购物车 "
(3)绑定点击事件
(4)pid uid=1 price
2.8: 学子商城--购物车列表/全选/清空/批量删除/删除/..
(1)库xz_cart[id/count/price/pid/uid]
(2)node.js查询购物车全部数据
- 参数 uid
- sql SELECT id,count,price,pid,uid,lname
xz_cart/xz_laptop
-json {code:1,data:[]}
(3)脚手架对应组件显示购物车
*-建立空组件 src/components/home/ShopCart.vue
*-为组件分配路径 /ShopCart
*-mui组件库 card组件
*-中间循环显示购物车中商品内容
[ ] 商品名称 价格 数量 (删除)