考虑 main/entry 函数中的以下代码 r := chi.NewRouter() r.Use(middleware.RequestID) r.Use(middleware.RealIP) r.Use(middleware.Logger) r.Use(middleware.Recoverer) r.Post("/book", controllers.CreateBook) http.ListenAndServe(":3333", r)和 CreateBook 函数定义为 func CreateBook(w http.ResponseWriter, r *http.Request) { w.Header().Set("content-type", "application/json") var bookObj models.Book err := json.NewDecoder(r.Body).Decode(&bookObj) spew.Dump(bookObj) collection := db.Client.Database("bookdb").Collection("book") ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) insertResult, err := collection.InsertOne(ctx, bookObj) if err != nil { log.Fatal(err) } json.NewEncoder(w).Encode(insertResult) }书籍模型//exporting attributes here solved the issuetype Book struct { ID primitive.ObjectID `json:"id,omitempty" bson:"id,omitempty"` name string `json:"name,omitempty" bson:"name,omitempty"` author string `json:"author,omitempty" bson:"author,omitempty"` isbn string `json:"isbn,omitempty" bson:"isbn,omitempty"`}但是,json.NewDecoder(r.Body).Decode(&bookObj)不会解析任何内容req.Body,因为它是空的,不会抛出错误,它与 chi 的Render函数有关。任何人都可以帮助我禁用Render和Bind的功能chi,我只想通过 JSON 解码器解析正文。
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
导出结构的所有字段解决了该问题。
type Book struct {
ID primitive.ObjectID `json:"id,omitempty" bson:"id,omitempty"`
Name string `json:"name,omitempty" bson:"name,omitempty"`
Author string `json:"author,omitempty" bson:"author,omitempty"`
ISBN string `json:"isbn,omitempty" bson:"isbn,omitempty"`
}
- 1 回答
- 0 关注
- 76 浏览
添加回答
举报
0/150
提交
取消