在进行beego集成时,如果是新项目建议 使用命令直接生成项目的主结构,如果是老项目就自己手动集成:

 

下面是手动集成的步骤:

go get github.com/astaxie/beego  #下载依赖包,这是主依赖包

如果新项目需要去创建目录结构,需要下载bee工具包

go get -u github.com/beego/bee  #这个会在gopath/bin下生成bee.exe可执行文件,记得配置环境变量

这里把新建的步骤也说下吧 也不费啥事:

1,创建一个目录(非gopath下)我们使用module模式,急着改环境变量和proxy

2, 在此目录下执行

go mod init 项目名称(为了方便跟当前目录同名即可)完成后会在当前目录下生成一个go.mod的文件,此时已经初始化成共mod

3, 创建beego项目

在上级目录执行

bee new beego #这里的beego是我的项目名称也是下级目录的名称,这里一定要注意

生成时会报是否覆盖beego目录因为已经存在,输入yes

最终生成的目录结构如下:

 

 以上就是新建beego项目,这个其实不灵活。我们还是接着讲我们手动集成吧

 

手动集成部分:

1,在已有的项目根目录下新建目录conf,因为beego默认的配置文件是在此目录下如果不指定启动时可能会报错,

2,在conf目录下新建文件 app.conf,默认配置文件就是这个文件,此文件可以为空

3,在现有项目下新建router目录

4,新建文件beegoroute.go 其实文件名自己可以随便命名

5,在beegoroute.go中初始beego

下面看看我的代码:

import (
    "encoding/json"
    "fmt"
    "github.com/astaxie/beego"
    "io/ioutil"
)


//这里我通过init方法来设置路由
func init(){ beego.Router(
"/getrequest", &HelloController{},"GET:Get") beego.Router("/postrequest", &HelloController{},"POST:Post") } func NewBeegoServer(){ beego.BConfig.Listen.HTTPPort = 8080 #设置beego server的监听端口 beego.BConfig.RunMode = "dev" #应用的运行模式,可选值为 proddev 或者 test. 默认是 dev, 为开发模式,在开发模式下出错会提示友好的出错页面,如前面错误描述中所述。 beego.BConfig.ServerName = "mywebapp" 启动时输出的项目名 beego.Run() }

下面是我定义的测试用的controller 这里我为了方便就直接跟router 定义在了一起,真正开发时不要这么做

 

下面是我的beego的所有代码:

package service

import (
    "encoding/json"
    "fmt"
    "github.com/astaxie/beego"
    "io/ioutil"
)


func init(){
    beego.Router("/getrequest", &HelloController{},"GET:Get")//明确指定用哪个方法
    beego.Router("/postrequest", &HelloController{},"POST:Post")


}

func NewBeegoServer(){
    beego.BConfig.Listen.HTTPPort = 8080
    beego.BConfig.RunMode = "dev"
    beego.BConfig.ServerName = "mywebapp"
    beego.Run()

}

type HelloController struct {
    beego.Controller
}
//Get对应的就是GET请求,也可以明确指定
func (c *HelloController) Get(){
    var emp Employee
    emps:=emp.GetEmployees()
    jsonemp,err:=json.Marshal(emps)
    if err != nil {
        fmt.Printf("marshal employees error : %v",err)
    }
    c.Ctx.WriteString(string(jsonemp))
}

func (c *HelloController) Post(){
    reqdata,err:=ioutil.ReadAll(c.Ctx.Request.Body)
    if err != nil {
        fmt.Printf("post request fail : %v\n",err)
    }
    fmt.Printf("request data is (%v)",string(reqdata))
    c.Ctx.WriteString("hello,"+string(reqdata))

}

以上是不是很方便很时候旧项目改造用

 

官方文档:

https://beego.me/docs/mvc/controller/config.md

 

个人文档:

https://bk.poph163.com/2019/05/16/beego%E6%A1%86%E6%9E%B6%E7%94%B1%E6%B5%85%E5%85%A5%E6%B7%B1/

https://www.cnblogs.com/flying1819/articles/8832667.html

https://beego.me/docs/mvc/controller/router.md

 

posted on 2021-01-22 09:47  EZgod  阅读(347)  评论(0编辑  收藏  举报