joken-前端工程师

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::
package main

import (
   "fmt"
   "net/http"
   //"net/url"
   "github.com/drone/routes"
   "database/sql"
   _ "github.com/go-sql-driver/mysql"
   "encoding/json"
)


var db = &sql.DB{}

func init(){
  var err interface{}
	db, err = sql.Open("mysql", "root:123@tcp(localhost:3306)/mytest?charset=utf8")
  if err!=nil{
    fmt.Println("数据库连接出错")
  }else{
    fmt.Println("suc sql connect")
  }
}

type BaseRes struct{
  Code int
  Msg string
  Data interface{}
}

func (b BaseRes) sucSet(m string,c int) BaseRes{
  b.Code=c
  b.Msg=m
  return b  //这里要返回出去才能被外界访问,因为这是一个闭包
}


type Article struct{
  Title string
  Author string
  Time string
  Content string
}

type ArticleTwo struct{
  Id int
  Title string
  Content string
}



func testRoute(w http.ResponseWriter,r *http.Request){
    var sid Article
    sid.Title="第一女首富的最好时刻又来了"
    sid.Author="周聪明"
    sid.Time="2014-12-03"
    sid.Content="十一年前的今天,当年的胡润百富榜发布,49岁的张茵拥有财富270亿元,成为中国第一位女首富,也是世界上最富有的女性白手起家者。当胡润公布首富人名时,场下只有两三"
    var sendData BaseRes
    sendData.Code=10000
    sendData.Msg="success"
    sendData.Data=sid
    res,_:=json.Marshal(sendData)
    fmt.Fprintln(w, string(res))
}

func testRouteTwo(w http.ResponseWriter,r *http.Request){
    rows, _ := db.Query("select * from article")
    var a ArticleTwo
    var arr []ArticleTwo //定义一个arr的数组用来存储ArticleTwo类型的数据
    for rows.Next() {
      rows.Scan(&a.Title, &a.Content, &a.Id) //存储ArticleTwo类型的数据
      arr=append(arr,a) //循环加入数组中
    }
    var b BaseRes
    b.Data=arr
    b=b.sucSet("suc",10000)
    res,_:=json.Marshal(b)
    fmt.Fprintln(w, string(res))
}

func main() {
   fmt.Println("正在启动WEB服务...")
   var mux *routes.RouteMux = routes.New()
   mux.Get("/",testRoute)
   mux.Get("/two",testRouteTwo)

   //http.Handle("/", mux)
   http.ListenAndServe(":8088", mux)
   fmt.Println("服务已停止")
}

  

posted on 2017-10-11 22:38  joken1310  阅读(285)  评论(0编辑  收藏  举报