【发布时间】:2013-01-10 14:10:20
【问题描述】:
我正在尝试在 Go on GAE 中开发自定义用户模型/身份验证代码。以下代码是对 demos/guestbook 应用中部分代码的简单修改:
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 块中做任何其他事情。像这样的一个小模组:
if _, err := q.GetAll(c, &users); err != nil {
fmt.Fprintf(w, "%s\n", "user not found")
}
产生相同的“内部服务器错误”页面,而不是仅仅打印“找不到用户”。
谢谢!
【问题讨论】:
标签: google-app-engine go internal-server-error