猿问

Golang GraphQL 总是返回一个变量为 null

GraphQL 查询字段 post 和 list 返回除 created_at 之外的所有数据。它始终为空。我检查GetPostBySlug和GetPostList变量,它包含来自 Postgres 的数据。我的错误在哪里?


模型.go


package post


type Post struct {

    Slug      string `db:"slug"`

    Title     string `db:"title"`

    Content   string `db:"content"`

    Author    string `db:"author"`

    Category  string `db:"category"`

    CreatedAt string `db:"created_at"`

    Published bool   `db:"published"`

}

存储库.go


package post


import (

    "context"

    "errors"

    "fmt"

    "log"

    "os"

    "time"


    "github.com/jackc/pgx/v4"

    "github.com/joho/godotenv"

)


var (

    db      *pgx.Conn

    Info    *log.Logger

    Warning *log.Logger

    Error   *log.Logger

)


func init() {

    err := godotenv.Load("environment/.env")

    if err != nil {

        Error.Fatalf("Can't read \".env\" file: %s\n", err.Error())

    }


    Info = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)

    Warning = log.New(os.Stdout, "WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)

    Error = log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)


    db, err = pgx.Connect(

        context.Background(),

        fmt.Sprintf(

            "postgres://%s:%s@%s:%s/%s",

            os.Getenv("POSTGRES_USER"),

            os.Getenv("POSTGRES_PASSWORD"),

            os.Getenv("POSTGRES_HOST"),

            os.Getenv("POSTGRES_PORT"),

            os.Getenv("POSTGRES_DB"),

        ),

    )

    if err != nil {

        Error.Fatalf("Can't connect to database: %s\n", err.Error())

    }

}


func GetPostBySlug(ctx context.Context, slug string) (result interface{}) {

    row, err := db.Query(ctx, "SELECT slug, title, content, author, category, created_at, published FROM posts WHERE slug=$1 LIMIT 1", slug)

    if err != nil {

        Warning.Printf("GetPostBySlug query: %v\n", err.Error())

        return err

    }


慕哥6287543
浏览 107回答 1
1回答

30秒到达战场

总结一下我们在评论中发现的内容将 GraphQL 对象 created_at 重命名为 createdAt
随时随地看视频慕课网APP

相关分类

Go
我要回答