我正在用Echo-Framework在GoLang中开发Web服务器。由于我不太熟练使用GO,所以很难将指针参数和预先声明的参数e.Context传递给处理程序。
我尝试以各种格式示例声明函数: 1)func(c echo.Context)SignUp(db * gorm.DB)错误{ ... }
2)func(c echo.Context,db * gorm.DB)SignUp()错误{ ... }
3)func()SignUp(c echo.Context,db * gorm.DB)错误{ ... }
我找不到有关带有两个参数空间的函数声明的任何文档。
package main
import (
"fmt"
"net/http"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
"github.com/labstack/echo"
"gitlab.quantifys.com/qira/backend-api/handler"
)
func main() {
e := echo.New()
db, err := gorm.Open("postgres", "host=localhost port=5432 user=postgres dbname=taxiwala_development password=mexico123 sslmode=disable")
if err != nil {
panic(err)
}
defer db.Close()
e.POST("/signup", handler.SignUp(c , &db))
e.Start(":4040")
}
package main
import (
"fmt"
"net/http"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
"github.com/labstack/echo"
"gitlab.quantifys.com/qira/backend-api/handler"
)
func main() {
e := echo.New()
db, err := gorm.Open("postgres", "host=localhost port=5432 user=postgres dbname=taxiwala_development password=mexico123 sslmode=disable")
if err != nil {
panic(err)
}
defer db.Close()
e.POST("/signup", handler.SignUp(c , &db))
e.Start(":4040")
}
以上代码给出如下错误: “不能在e.POST的参数中使用handler.SignUp(echo.Context,&db)(类型错误)作为echo.HandlerFunc类型。