gpt4 book ai didi

google-app-engine - 使用 Go 在 App Engine 上从 Google Cloud Datastore 读取数据

转载 作者:IT王子 更新时间:2023-10-29 02:23:11 25 4
gpt4 key购买 nike

这是我尝试读取的实体的屏幕截图。

Entities

这是我的代码:

package readfromgcd

import (
"net/http"
"appengine"
"appengine/datastore"
"fmt"
)

type person struct {
firstname string
lastname string
}

func init () {
http.HandleFunc("/", readpeople)
}

func readpeople (w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
q := datastore.NewQuery("person")
people := make([]person, 0, 20)
if _, err := q.GetAll(c, &people); err !=nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
fmt.Fprint(w, "Hello world!")
}

我得到以下结果:数据存储:无法将字段“firstName”加载到“readpeople.person”中:没有这样的结构字段

这是截图。 result

此代码未显示对该数据执行任何操作。我想将这篇文章限制在检索范围内。我一定错过了一些简单的东西。我哪里出错了?在此先感谢您的帮助。

最佳答案

数据存储中的属性名称与 Go 结构 person 中的字段名称不匹配。例如,在您的数据存储区中,person 具有属性 firstName,但您的结构具有字段 firstname

所以首先要做的是让它们匹配;或者如果你想在你的 Go 结构中使用不同的名字,使用 struct tags定义映射。

另一件重要的事情:您必须按顺序导出您的类型及其字段,以便 datastore 包能够使用反射将数据加载到其中。所以你必须以大写字母开始你的类型名称及其字段:

type Person struct {
FirstName string `datastore:"firstName"`
LastName string `datastore:"lastName"`
}

关于google-app-engine - 使用 Go 在 App Engine 上从 Google Cloud Datastore 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37347847/

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