VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > go语言 >
  • 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

相关教程