原创 

GO 语言chi+xorm 搭建web后端之hello world

分类:go    750人阅读    IT小君  2022-08-31 22:26
package main

import (
	"encoding/json"
	"fmt"
	"github.com/go-chi/chi/v5"
	"github.com/go-chi/chi/v5/middleware"
	_ "github.com/go-sql-driver/mysql"
	"github.com/go-xorm/xorm"
	"net/http"
	"xorm.io/core"
)

var engine *xorm.Engine

func main() {
	r := chi.NewRouter()
	r.Use(middleware.Logger)
	engine, err := xorm.NewEngine("mysql", "root:123456@/ddns?charset=utf8") // dbname是taoge
	if err != nil {
		fmt.Println(err)
		return
	}
	if err := engine.Ping(); err != nil {
		fmt.Println(err, "数据库连接失败!")
		return
	}
	defer engine.Close()
	fmt.Println("数据库连接成功!")
	engine.SetMapper(core.GonicMapper{})
	engine.Sync2(new(Domain))

	r.Get("/", func(w http.ResponseWriter, r *http.Request) {
		var Pers2 []Domain
		var msg []byte
		engine.Find(&Pers2)
		w.Header().Set("content-type", "text/json")
		msg, _ = json.Marshal(Pers2)
		w.Write(msg)
	})
	http.ListenAndServe(":3000", r)
}

type Domain struct {
	Id       int    `xorm:"pk autoincr"`
	Value    string `xorm:"varchar(50)"`
	Remark   string `xorm:"varchar(200)"`
	CreateAt string `xorm:"DateTime null 'createAt'"`
	Domain   string `xorm:"varchar(24)"`
}
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

 工具推荐 更多»