Golang实战项目-B2C电商平台(2)
Golang实战项目-B2C电商平台(2)
实现登录功能
- 用户登录后判断帐号和密码是否正确,其中帐号可以是用户名、电话、邮箱.
- 服务器端判断后返回EgoResult结构体对应的JSON数据,其中Status=200表示成功,成功后页面跳转到
/index
,Status只要不为200都表示登录失败,页面给出提示框告诉用户登录失败 - 用户输入账号和密码,点击,向服务端发送请求
- 服务器接收到登录请求
- 查询数据库表,根据结果设置EgoResult Status值,并以JSON响应给客户端
- 客户端接收JSON数据后判断Status是否为200
- 是,则登录成功,否则失败
src/user下创建TbUser.go 实体
package user//对应数据库中用户表
type TbUser struct {//属性首字母大写:1. 要转换为json 2. 可能出现跨包访问Id int64Username stringPassword stringPhone stringEmail stringCreated stringUpdated string
}
package user//对应数据库中用户表
type TbUser struct {//属性首字母大写:1. 要转换为json 2. 可能出现跨包访问Id int64Username stringPassword stringPhone stringEmail stringCreated stringUpdated string
}
- 在user下新建TbUserDao.go文件,编写数据访问代码
//根据用户名和密码查询,如果返回值为nil表示查询失败,否则成功
func SelByUnPwdDao(un, pwd string) *TbUser{sql := "select * from tb_user where username=? and password=? or email=? and password=? or phone=? and password=?"rows,err:=commons.Dql(sql, un, pwd, un, pwd, un, pwd)if err!=nil{fmt.Println(err)return nil}if rows.Next(){user:=new(TbUser)rows.Scan(&user.Id,&user.Username,&user.Password,&user.Phone,&user.Email,&user.Created,&user.Updated)commons.CloseConn()return user}return nil
}
- 在user下新建TbUserService.go 编写业务逻辑代码
func LoginService(un,pwd string) (er commons.EgoResult){u:=SelByUnPwdDao(un,pwd)if u!=nil{er.Status=200}else{er.Status=400}return
}
- 在user下新建TbUserController.go编写控制器代码
//所有user模块的handler
func UserHandler() {http.HandleFunc("/login", loginController)
}//登录
func loginController(w http.ResponseWriter, r *http.Request) {username := r.FormValue("username")password := r.FormValue("password")er := LoginService(username, password)//把结构体转换为json数据b, _ := json.Marshal(er)//设置响应内容为jsonw.Header().Set("Content-Type", "application/json;charset=utf-8")w.Write(b)
}
- 在main.go中引用UserHandler()让user模块所有控制器生效
func main() {s := http.Server{Addr: ":80"}http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))http.HandleFunc("/", welcome)//用户相关user.UserHandler()s.ListenAndServe()
}
Golang实战项目-B2C电商平台(2)相关推荐
- Golang实战项目-B2C电商平台项目(8)
Golang实战项目-B2C电商平台项目(8) 商品描述新增 商品描述表(tb_item_desc)和商品表(tb_item)具有主外键关系,商品的主键也是商品描述的主键,使用工具函数生成的主键也当作 ...
- 【项目精选】基于Spring Boot的综合性B2C电商平台--迷你天猫商城
迷你天猫商城 点击下载源码 介绍 迷你天猫商城是一个基于Spring Boot的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确 ...
- 【图解版】B2C电商平台解决方案
Xmind下载地址 功能架构+技术架构 关键词,B2C,电商平台,解决方案,架构图 展开图 完全展开图
- JAVA毕设项目社区电商平台系统(java+VUE+Mybatis+Maven+Mysql)
JAVA毕设项目社区电商平台系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Web ...
- 怎么做好B2C电商平台的粉丝深度与精细化运营?
电商模式的不断发展,电商模式变的越来越多,B2C就是其中一种,可以说是比较主流的电商模式.那么怎么做好B2C电商平台的粉丝深度与精细化运营?下面是易族智汇javashop为您编辑整理的,欢迎阅读,仅供 ...
- b2c电商平台建设不能忽略了这些
电子商务的发展带动了一批又一批传统行业的变革,在很大程度上,电子商务使企业可以用小的成本进入全球化市场,让中小企业有可能拥有和大企业一样的信息资源,提升企业的竞争力.近期,小编发现, "b2 ...
- vue实战项目:电商管理系统实现步骤笔记(一)
vue实战项目 视频地址以及项目文件 一.项目概述 1.1电商项目基本业务概述 1.2电商后台管理系统的功能 1.3电商后台管理系统的开发模式(前后端分离) 1.4电商后台管理系统的技术选型 1.4. ...
- 20-Vue实战项目:电商管理系统(Element-UI)总结
20-Vue实战项目:电商管理系统(Element-UI)总结 结果如下: 这算是我自己跟着视频做的第一个比较完整的可以看的项目了,用时18天,但这视频的总时间是20个小时,自己还是比较的低效率.不多 ...
- 软件测试实战项目【电商、银行、商城、金融、医药、电商】
最近,不少读者托我找一个能实际练手的测试项目.开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难. 这是博主收集了很久才弄到的,希望可以帮助到你. 由于 ...
- 如何对一个B2C电商平台数据建模-3-订单
综述 假定为一个B2C的电商公司 对于一般的零售或者生产公司来说,订单/采购单收入和成本的最大来源.本章主要讨论如何建立一个通用的销售订单和采购单模型 原文见:数据建模3-订单 逻辑模型 订单相关业务 ...
最新文章
- vba定义全局变量并赋值_利用VBA代码如何打开任意程序
- 关于Java开发需要注意的十二点流程
- 免费CSDN积分获取
- linux变utf8为sjis命令,【通译】PHP中 文字编码变换时 使用SJIS-win而非SJIS,使用eucJP-win而非EUC-JP...
- php修改头像接口,php如何修改头像?
- Cadence OrCAD17.2禁止start page启动设置方法
- Scratch(三十八):八大行星
- 来自一个曾经200斤现在140斤程序员的减肥成功经验(包含个人认为相对安全的饮食法推荐)
- 视频教程-深入浅出 Zabbix 4.0(基于 zabbix 4.2)-Linux
- Sublime Text的使用代码块安装的模块
- Windows下的SSL 应用
- Spring Boot 项目 - API 文档搜索引擎
- key_t键和ftok函数
- python sklearn的训练集测试集根据标签的比例来切分数据集
- (100天2小时第二十九天)几种常见的图像噪声及去噪处理算法
- Toad for Oracle工具的使用(一)
- 飞天云动,站在下一个商业时代的门口
- 今年上半年,通信行业发生了哪些事?
- 如何克隆服务器系统盘,双硬盘轻松克隆MAC OS X系统全攻略
- 美团点评携手巴黎欧莱雅沙龙专属发起“城市新青年”计划
热门文章
- 云红包SDK:金融魔方云红包SDK助力摄影大赛玩出新亮点
- 印度18年首发一箭31星,包括遥感卫星Cartosat
- java 房间管理_Java 集合 之 List 酒店房间管理实例
- ARM64 ubuntu20.04根文件系统制作
- Quick-Cocos2d-x初学者游戏教程(2) ——【Quick内部的代码结构及相应的原理】
- Nginx配置限制IP访问
- android模拟器架构,《Hello,World公开课》Android模拟器架构演进
- 爬虫——图书馆抢座,Python果然无所不能!
- 事务进程ID与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品 问题及想法
- TortoiseSVN下载教程和汉化教程