将请求中的表单序列化并放入Mongo数据库中。

huangapple go评论79阅读模式
英文:

Serialising a form from a request and putting in in mongo

问题

我尝试将来自请求的表单(目前不知道数据的结构)存入Mongo数据库。

以下是我的代码:

fmt.Println(r.Form)
for key, values := range r.Form {   // 遍历map
    for _, value := range values {    // 遍历[]string
        fmt.Println(key, value)
    }
}

fmt.Println(r.Form)
decoder := json.NewDecoder(r.Body)
session, err := mgo.Dial("127.0.0.1")
if err != nil {
    panic(err)
}
defer session.Close()

// 可选的。将会话切换为单调行为。
session.SetMode(mgo.Monotonic, true)

c2 := session.DB("finger_bag").C("finger")
data, err := bson.Marshal(decoder)
err2 := c2.Insert(data)
if err2 != nil {
    Info.Println("error")
    Info.Println(err2)
}

如果有人知道如何实现,请提供想法。

英文:

I have tried to put a form from a request (I don't know the structure of the data that I get for the moment) in a mongo database.

Here is my code :

fmt.Println(r.Form)
for key, values := range r.Form {   // range over map
	for _, value := range values {    // range over []string
		fmt.Println(key, value)
	}

}
fmt.Println(r.Form)
decoder := json.NewDecoder(r.Body)
session, err := mgo.Dial("127.0.0.1")
if err != nil {
	panic(err)
}
defer session.Close()

// Optional. Switch the session to a monotonic behavior.
session.SetMode(mgo.Monotonic, true)

c2 := session.DB("finger_bag").C("finger")
data, err := bson.Marshal(decoder)
err2 := c2.Insert(data)
if (err2 != nil){
	Info.Println("error")
	Info.Println(err2)
}

If anyone have any idea how to do it.

答案1

得分: 1

如果你想存储r.Form的内容,那就直接存储r.Form,而不是尝试解组和重新组织请求体:

c2.Insert(r.Form)
英文:

If you want to store the contents of r.Form, then store r.Form, rather than trying to unmarshal and remarshal the request body:

c2.Insert(r.Form)

huangapple
  • 本文由 发表于 2017年2月9日 23:53:21
  • 转载请务必保留本文链接:https://go.coder-hub.com/42141175.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定