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)
}
这是在url发生时执行的普通beego路由器。我想要像
这样的东西type MainController struct {
beego.Controller
}
func (this *MainController,db *sql.DB) Post() {
fmt.Println("input value is", datapoint.UserId)
}
为了使用数据库连接指针。这是否有可能实现这一目标...如果不是请建议
答案 0 :(得分:0)
你不能在golang
中这样做type MainController struct {
beego.Controller }
func (this *MainController,db *sql.DB) Post() {
fmt.Println("input value is", datapoint.UserId)
}
表格中的声明
function (c *MainController)Post()
表示Post是MainController
结构的一种方法,您可以将变量传递给它。
我的建议是你将db指针声明为包中的全局变量,如下所示,你就可以在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)
}
但考虑到这是使用MVC模式的Beego,您可以在模型中完成所有这些操作。我建议你看看他们真棒documentation here