覆盖处理程序函数的默认参数

时间:2019-05-30 14:53:37

标签: go go-echo

我正在用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类型。

0 个答案:

没有答案