我正在使用gorethink驅動程序,我在模型中編寫了這樣的查詢函數func GetQuotesByUser(idUser string) []Quote{ ids:=GetQuoteIdsByUser(idUser) if (len(ids)>0){ result,err:=r.Table("quote").GetAll(ids...).Run(config.Connection()) defer result.Close() if err!=nil{ fmt.Println(err) return []Quote{} } var quotes []Quote err=result.All("es) if err!=nil{ fmt.Println(err) return []Quote{} } fmt.Println(quotes) return quotes } else{ return []Quote{} }}我編寫了一個調用上述函數的路由處理程序import ( "corate/util" "corate/model" "github.com/fatih/structs" "net/http")func DashboardHandler(w http.ResponseWriter,r *http.Request){ files:=[]string{"base","dashboard"} session,_:=util.GlobalSessions.SessionStart(w,r) defer session.SessionRelease(w) quotes:=model.GetQuotesByUser("ca8a2e14-f65b-43b1-b655-97d7c29190ec") q:=structs.Map(quotes) util.RenderTemplate(w,q,files...)}這是main功能func main(){ // Setup database config.Setupdb() // Initialize session manager util.InitSessionManager() // Serve static folder http.Handle("/public/",http.StripPrefix("/public/",http.FileServer(http.Dir("public")))) // Setup routers and middlewares http.HandleFunc("/",route.IndexHandler) http.HandleFunc("/login",route.GoogleLoginHandler) http.HandleFunc("/auth/google",route.GoogleCallbackHandler) http.Handle("/dashboard",negroni.New( negroni.HandlerFunc(route.IsAuthenticated), negroni.Wrap(http.HandlerFunc(route.DashboardHandler)), )) // Start listening http.ListenAndServe(":3000",nil)}我使用astaxie/beego/session庫來管理此服務器的會話import ( "github.com/astaxie/beego/session")var ( GlobalSessions *session.Manager)當我啟動服務器,登錄并請求dashboard路徑,DashboardHandler被處理,GetQuotesByUser被調用,它工作,它工作,它確實打印出查詢的真實結果。但是在瀏覽器中,瀏覽器拋出錯誤:沒有接收到數據ERR_EMPTY_RESPONSE為什么會發生?然后我注意到,如果我不使用fatih/structs庫,就不會出錯。但是我想使用那個庫,它對我有很大幫助。我想知道這種奇怪行為的原因以及如何在仍在使用fatih/structs庫的同時修復它
1 回答

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
GetQuotesByUser返回一個切片,而不是一個結構。所以你不能直接將它傳遞給structs.Map. 您必須迭代切片并將每個元素單獨轉換為地圖。
quotes := model.GetQuotesByUser("ca8a2e14-f65b-43b1-b655-97d7c29190ec")
qs := []map[string]interface{}{}
for _, q := range quotes {
qs = append(qs, structs.Map(q))
}
util.RenderTemplate(w,qs,files...)
應該讓你接近你所追求的。
- 1 回答
- 0 關注
- 263 瀏覽
添加回答
舉報
0/150
提交
取消