gpt4 book ai didi

mongodb - 去不正确解释http请求

转载 作者:行者123 更新时间:2023-12-01 22:33:26 28 4
gpt4 key购买 nike

我连接了一个mongoDb实例,并且我的请求(来自我的React应用程序)返回了200。我可以在Mondodb中看到该集合为“猫”,其中包含每只猫的记录,但猫记录如下所示:

_id:5f66641bad25efa40b810d83 - fine
name:"" - should not be blank
favorite:false -should be true
起初我遇到了一些cors问题,所以我将“Content-Type”更改为“content-type”(对于Access-Control-Allow-Header),并“修复”了cors问题。我不知道那是不是在破坏代码。
由于这是我第一次自己建立数据库,所以我不确定在哪里破坏了代码。任何帮助,将不胜感激。
这是我的CreateCat方法:
func CreateCat(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Context-Type", "application/json; charset=utf-8")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "POST")
w.Header().Set("Access-Control-Allow-Headers", "content-type")
var cat models.Cat
_ = json.NewDecoder(r.Body).Decode(&cat)
fmt.Println(cat)
insertOneFavoriteCat(cat)
json.NewEncoder(w).Encode(cat)
}
这是我的模型:
type Cat struct {
ID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
Name string `json:"name,string"`
Favorite bool `json:"favorite,string"`
}
这是println打印的内容: { false}如果您想知道这是否是我的前端,请发送以下请求:
{"cat":{"name":"tabby","favorite":true}}

最佳答案

问题是JSON MongoDB返回的结果与您的结构解码方式不匹配。该false来自Favorite字段,该字段在MongoDB返回的cat键的JSON对象中找不到。要解码这种类型的响应,您需要定义一个包装结构(在下面的示例中为CatModel),因为您的Cat并不是顶级对象,而仅仅是上层JSON对象的成员键:

type CatModel struct {
Cat struct {
ID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
Name string `json:"name"`
Favorite bool `json:"favorite"`
} `json:"cat"`
}
另外,标题名称中也有错字(用 Context-Type代替 Content-Type)。正确的 Header().Set()是:
w.Header().Set("Content-Type", "application/json; charset=utf-8")

关于mongodb - 去不正确解释http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63973472/

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