package main
import (
"./model"
"./service"
“encoding/json”
“fmt”
_ “github.com/go-sql-driver/mysql”
“html/template”
“log”
“math/rand”
“net/http”
)
func UserLogin(writer http.ResponseWriter, request *http.Request) {
request.ParseForm()
mobile := request.PostForm.Get(“mobile”)
passwd := request.PostForm.Get(“passwd”)
loginOk := false
if mobile == "18700000000" && passwd == "123456" {
loginOk = true
}
if loginOk {
data := make(map[string]interface{})
data["id"] = 1
data["token"] = "test"
Resp(writer, 0, data, "")
} else {
Resp(writer, -1, nil, "密码错误")
}
}
var UserSerivce *service.UserService
func Register(writer http.ResponseWriter, request *http.Request) {
request.ParseForm()
mobile := request.PostForm.Get(“mobile”)
passwd := request.PostForm.Get(“passwd”)
nickname := “UserName” + string(rand.Int31())
sex := model.SEX_UNKNOW
avatar := ""
user,err :=UserSerivce.Register(mobile,passwd,nickname,avatar,sex)
if err != nil{
Resp(writer,0,user,“注册成功”)
}else{
Resp(writer,-1,nil,err.Error())
}
}
type H struct {
Code int json:"code"
Msg string json:"msg"
Data interface{} json:"data,omitempty"
}
func Resp(w http.ResponseWriter, code int, data interface{}, msg string) {
w.WriteHeader(http.StatusOK)
w.Header().Set(“Content-Type”, “application/json”)
//定义结构体
h := H{
Code: code,
Data: data,
Msg: msg,
}
//结构体转JSON
js, err := json.Marshal(h)
if err != nil {
log.Println(err.Error())
}
w.Write([]byte(js))
}
func RegisterView() {
tpl, err := template.ParseGlob(“view/**/*”)
if err != nil {
log.Fatal(err.Error())
}
for _, v := range tpl.Templates() {
tplname := v.Name()
fmt.Println(tplname)
http.HandleFunc(tplname, func(writer http.ResponseWriter, request *http.Request) {
tpl.ExecuteTemplate(writer, tplname, nil)
})
}
}
func main() {
http.HandleFunc("/user/login", UserLogin)
http.HandleFunc("/user/register", Register)
//1.提供静态资源目录支持
//http.Handle("/",http.FileServer(http.Dir(".")))
//提供指定目录暴露出来
http.Handle("/asset/", http.FileServer(http.Dir(".")))
/*登录的后端渲染并接入
http.HandleFunc("/user/login.shtml/", func(writer http.ResponseWriter, request *http.Request) {
tem,err :=template.ParseFiles("view/user/login.html")
if err != nil{
log.Fatal(err.Error())
}
tem.ExecuteTemplate(writer,"/user/login.shtml",nil)
})
//注册的后端渲染并接入
http.HandleFunc("/user/register.shtml/", func(writer http.ResponseWriter, request *http.Request) {
tem,err :=template.ParseFiles("view/user/register.html")
if err != nil{
log.Fatal(err.Error())
}
tem.ExecuteTemplate(writer,"/user/register.shtml",nil)
})
*/
RegisterView()
http.ListenAndServe(":8080", nil)
}