Переопределить аргументы по умолчанию для функции-обработчика

Я занимаюсь разработкой Web-сервера в GoLang с помощью Echo-Framework. У меня возникают трудности с передачей аргумента-указателя обработчику с его предварительно объявленным аргументом e.Context в другом пакете, так как я не очень хорошо владею GO.

Я попытался объявить функцию в различных форматах, например: 1) func (c echo.Context) SignUp (db * gorm.DB) error { ... }

2) func (c echo.Context,db *gorm.DB) Ошибка SignUp() { ... }

3) func () Ошибка регистрации (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")
}

 обработчик пакетов

"Сеть / HTTP"
"Github.com/labstack/echo"
"Github.com/jinzhu/gorm"

Тип Пользовательская структура {
    gorm.Model
    FirstName строка 
    LastName строка 
}

func SignUp(c echo.Context,db *gorm.DB) error {
    u:= new(models.User)
    if err:= c.Bind(u); err!= nil {
      println( err)
    }

    Var Responder Респондент
    err:= validate.Struct(u)
    responseder.Code ="1"
    responseder.Validation = проверка
    db.Create(& и)

    вернуть c.JSON(http.StatusOK, респондент)
}

Вышеприведенный код выдает ошибку, как показано ниже: "не может использовать handler.SignUp(echo.Context, &db) (тип ошибки) как тип echo.HandlerFunc в аргументе для e.POST "

0 ответов

Другие вопросы по тегам