我在更新 mongodatabase 上的用户时遇到了一些麻烦。基本上我想通过用户名选择用户而不是编辑其详细信息。我正在使用 Gorilla Mux 和 mgo 连接 MongoDB。
这是代码:
func ViewUserHandler(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
username := vars["username"]
session, err := mgo.Dial("mongodb://DATABASE_URL")
if err != nil {
panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
c := session.DB("studnet").C("user")
result := Person{}
// get the user_id using a hidden field when clicked using javascript
err = c.Find(bson.M{"name": username}).One(&result)
if err != nil {
log.Fatal(err)
}
if r.Method == "GET" {
t, _ := template.ParseFiles("profile.html")
t.Execute(w, result)
}
// update the user profile details
if r.Method == "POST" {
r.ParseForm()
// TODO : update the user
selectedUser := bson.M{"name": username}
updatedUser := bson.M{"$set": bson.M{
"Name": r.Form["username"][0],
"Gender": r.Form["gender"][0],
"Age": r.Form["age"][0],
"CreatedAt": time.Now(),
}}
err = c.Update(selectedUser, updatedUser)
if err != nil {
panic(err)
}
http.Redirect(w, r, "/view/"+username, 301)
}
}
汪汪一只猫
慕运维8079593
相关分类