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
}
30秒到达战场
相关分类