-
go+js登录注册例子(带邮箱验证)
1 搭建服务器
1 package index 2 3 import ( 4 "log" 5 "net/http" 6 7 "2021.6.28_WebServer_email.go/lib/utils" 8 ) 9 10 const ( 11 path = "json/users.json" 12 UserName = "UserName" //Cookie{Name: UserName, Value: email} 13 ) 14 15 var ( 16 uti = utils.NewUtils() //实用包 17 codes = make(map[string]string, 900000) //验证码集合 "email": "code", ... 18 users = make(map[string]string, 900000) //在线用户集合 "email": "1", ... 19 ) 20 21 //运行服务器 22 func RunServer() { 23 24 // 启用静态文本服务 25 http.Handle( 26 "/view/", 27 http.StripPrefix( 28 "/view/", 29 http.FileServer(http.Dir("view")), 30 ), 31 ) 32 33 // 设置路由,js的ajax请求地址与HandleFunc第一个参数对应(url) 34 http.HandleFunc("/", show) //显示主页 35 http.HandleFunc("/register", register) //注册 36 http.HandleFunc("/requestEmail", requestEmail) //请求邮件验证码 37 http.HandleFunc("/login", login) //登录 38 http.HandleFunc("/isLogin", isLogin) //检测用户是否已经登录 39 http.HandleFunc("/exit", exit) //退出登录 40 41 // 启动web服务,监听9090端口(如果没有遇到错误会一直运行下去) 42 //浏览器访问 http://localhost:9090 43 err := http.ListenAndServe(":9090", nil) 44 if err != nil { 45 log.Fatal("ListenAndServe: ", err) 46 } 47 48 }
1.1 当前对 http.HandleFunc("/", show) 的理解
第一个参数是相对于main.go的相对路径, 例如 http.HandleFunc("/login", login), 在浏览器输入地址 http://localhost:9090/login 就会执行login函数,
所以第二个函数应该填当路径为http://localhost:9090/login时要执行的函数名
1.5 http.HandleFunc("/", show)与ajax的用法
login.js
ajax的url值应该与第一个参数相对应
2 显示主页
1 package index 2 3 import ( 4 "fmt" 5 "html/template" 6 "net/http" 7 ) 8 9 //显示主页 10 // w表示response对象,回复客户端信息 11 // r表示客户端请求对象,包含了请求头,请求参数等等 12 func show(w http.ResponseWriter, r *http.Request) { 13 14 // 回复请求后是否关闭连接 15 r.Close = true 16 17 //获得一个与template关联的模板 18 t, err := template.ParseFiles("view/index.html") 19 if err != nil { 20 fmt.Fprintf(w, "parse template error: %s", err.Error()) 21 return 22 } 23 24 //应用到第二个参数上,并写入w输出 25 t.Execute(w, nil) 26 27 }
2.5
进入http://localhost:9090主页时首先会执行show函数 路由器http.HandleFunc("/", show)会给show传递2个实参: w, r
服务器语言: golang
前端语言: html5(推荐使用谷歌浏览器)
通信: ajax & json
项目: 登录注册系统
模拟运行: 运行.exe文件,然后打开谷歌浏览器输入地址: http://localhost:9090
ps: 注册完成的用户保存到了json文件里面
ps: 实现了发送smtp邮箱验证注册邮箱是否可用
ps: 实现了json与go之间的互相转换
ps: 实现了操作json文件
作者qq: 3247940050
时间: 2021.6.28
/*---------------------------三八线-------------------------------------*/
目录介绍:
index: 实现服务器和路由的地方
json: 存放用户信息的json文件
lib: 一些实用包
view: html, css, js 文件(前端视图代码)
源码地址: https://pan.baidu.com/s/1TV1j5BeZ7ZhidCq7aQXePA
提取码: 0000
压缩包名: 2021.6.28_WebServer_email.go
出处:https://www.cnblogs.com/weihexinCode/p/14942884.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式