这是代码 config/config.go
const PROJECT_ID = "projectid"
var Ctx = context.Background()
var DSClient *datastore.Client
type Logger struct {
Pkg string
}
func (l *Logger) Error(v ...interface{}) {
log.Print("Error|", l.Pkg, ": ", v)
}
func (l *Logger) Info(v ...interface{}) {
log.Print("Info|", l.Pkg, ": ", v)
}
var propFile = "${env}.properties"
var Props *properties.Properties
func init(){
Props = properties.MustLoadFile(propFile, properties.UTF8)
DSClient, err := datastore.NewClient(Ctx, PROJECT_ID)
if err != nil {
log.Fatal("Couldn't connect to DataStore: ", err)
}
log.Print("DataStore Client: ", DSClient)
}
索引/index.go
import (
...
"github.com/shwetanka19/project/internal/config"
)
urs := [] user.User{}
q := datastore.NewQuery("users").Filter("email=", greq.Email).Limit(1)
logger.Info("Now Client: ", config.DSClient)
keys, err := config.DSClient.GetAll(config.Ctx, q, &urs)
日志
DataStore Client: &{0xc000010840 0xc000119d40 projectid}
[Now Client: <nil>]
为什么 Client 已经初始化了,现在却是 nil 呢?API 调用期间会调用 index.go 中的代码。而 config 在服务器启动时被调用。
紫衣仙女
相关分类