gpt4 book ai didi

dictionary - 无法在谷歌应用引擎数据存储区中插入动态属性

转载 作者:IT王子 更新时间:2023-10-29 01:40:30 25 4
gpt4 key购买 nike

我正在尝试从这篇文章开始工作 How can I have dynamic properties in go on the google app engine datastore

无法将数据插入数据存储区,它只是在创建ID

import (
"log"
"net/http"
"time"

"github.com/julienschmidt/httprouter"
"google.golang.org/appengine"
"google.golang.org/appengine/datastore"
)

type DynEnt map[string]interface{}

func (d *DynEnt) Load(props []datastore.Property) error {
// Note: you might want to clear current values from the map or create a new map
for _, p := range props {
(*d)[p.Name] = p.Value
}
return nil
}

func (d *DynEnt) Save() (props []datastore.Property, err error) {
for k, v := range *d {
props = append(props, datastore.Property{Name: k, Value: v})
}
return nil, nil
}

//GetAccountHandler is to
func GetAccountHandler(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {

c := appengine.NewContext(r)

d := DynEnt{"email": "me@myhost.com", "time": time.Now()}
log.Println("d=>", d)
log.Println("&d=>", &d)
k := datastore.NewIncompleteKey(c, "DynEntity", nil)
key, err := datastore.Put(c, k, &d)
log.Fatalf("%v %v", key, err)

}

最佳答案

my original answer 中有错字, Save() 末尾的返回值是复制/粘贴错误(来自 channel 版本)。正确的版本是:

func (d *DynEnt) Save() (props []datastore.Property, err error) {
for k, v := range *d {
props = append(props, datastore.Property{Name: k, Value: v})
}
return
}

请注意,在 return 之后没有指定任何值,因为使用了命名结果参数。指定 nil, nil 不会返回在 Save() 中构建的 slice 。

您还可以在处理程序的末尾调用 log.Fatalf(),这会终止您的应用程序。请尝试使用 log.Printf()

关于dictionary - 无法在谷歌应用引擎数据存储区中插入动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55969112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com