我们是否可以将额外参数传递给beego路由器

问题描述:

type MainController struct { 
    beego.Controller 
} 

func (this *MainController) Post() { 
    var datapoint User 
    req := this.Ctx.Input.RequestBody 
    json.Unmarshal([]byte(req), &datapoint) 
    this.Ctx.WriteString("hello world") 
    // result := this.Input() 
    fmt.Println("input value is", datapoint.UserId) 

} 

这是正常的beego路由器,它在url出现时执行。我想要类似我们是否可以将额外参数传递给beego路由器

type MainController struct { 
    beego.Controller 
} 

func (this *MainController,db *sql.DB) Post() { 

    fmt.Println("input value is", datapoint.UserId) 

} 

为了使用数据库连接指针。这是可能实现这一目标使用去...如果不是请建议

你不能在形式

function (c *MainController)Post() 

为此在golang

type MainController struct { 
    beego.Controller } 

func (this *MainController,db *sql.DB) Post() { 

    fmt.Println("input value is", datapoint.UserId) 

} 

的声明意味着,邮政是一个MainController结构的方法可以将变量传递给它。

我的建议是你声明分贝指针作为全局变量在你的包像下面那么你将能够使用它的Post功能

type MainController struct { 
    beego.Controller 
} 

var db *sql.DB 

func (this *MainController) Post() { 
    //you can now use the variable db inside here 
    fmt.Println("input value is", datapoint.UserId) 

} 

内,但考虑到这是Beego它使用MVC模式你可以在模型中完成所有这些。我建议你看看他们的真棒documentation here

+1

正是我正在尝试同一件事,同时你发布了我正在尝试做的事情.....它正在为我工​​作 – gophervk