【发布时间】:2014-10-21 00:19:06
【问题描述】:
不知道这里发生了什么......但我有一段时间试图完成一个简单的操作。我是 GO 新手(试图从 Node 切换),所以它可能是 Type 的东西......
User struct {
ID_ bson.ObjectId `bson:"_id,omitempty" json:"_id,omitempty"`
UTC time.Time `bson:"utc,omitempty" json:"utc,omitempty"`
USR string `bson:"usr,omitempty" json:"usr,omitempty"`
PWD string `bson:"pwd,omitempty" json:"pwd,omitempty"`
}
func save(w http.ResponseWriter, r *http.Request) {
m := s.Copy()
defer m.Close()
user := m.DB("0").C("user")
var a User
json.NewDecoder(r.Body).Decode(&a)
err := user.FindId(a.ID_)
if err != nil {
panic(err)
}
}
这会返回以下错误
http: panic serving [::1]:53092: &{{0 0} 0xc208062600 {{0.user [{_id TE?????}] 0 0 ?
reflect.Value? 0 <nil> {?reflect.Value? ?reflect.Value? ?reflect.Value? false false [] 0}
false []} 0.25 0}}
当我跑步时:
a.ID_.Valid()
我得到“真实”。
附言。我可以让它工作:
func user(w http.ResponseWriter, r *http.Request) {
m := s.Copy()
defer m.Close()
user := m.DB("0").C("user")
a := &User{ID_:bson.NewObjectId(), UTC:time.Now()}
b, _ := json.Marshal(a)
user.Insert(a)
}
任何帮助将不胜感激。
【问题讨论】:
-
我是。我粘贴了上面的错误。它来自这一行 user.FindId(a.ID_)。我正在苦苦挣扎,因为 a.ID_ 是一个有效的 ObjectId。
-
我是个菜鸟……你说得对。谢谢。随意把它放在答案中,我会接受它。