我正在嘗試在GAE上開發自定義用戶模型/驗證代碼。下面的代碼是在演示/留言板應用程序代碼的一些簡單的修改:golang appengine內部服務器錯誤
q := datastore.NewQuery("User").Filter("Email =", email)
users := make([]User, 0, 1)
if _, err := q.GetAll(c, &users); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
如果電子郵件是從形式拉動。它只是用給定的電子郵件查詢用戶的數據存儲。如果帶有電子郵件的用戶存在,它會很好地工作,如果他們沒有,則會在「內部服務器錯誤」頁面中死掉。我不明白的(我猜想關於Go中的錯誤處理,或者數據存儲查詢),這就是爲什麼我不能在if error
塊中做其他任何事情。像這樣的輕微MOD:
if _, err := q.GetAll(c, &users); err != nil {
fmt.Fprintf(w, "%s\n", "user not found")
}
產生的只是印刷「用戶未找到」相同的「內部服務器錯誤」頁面,而不是。
謝謝!