【发布时间】:2020-01-15 03:32:27
【问题描述】:
我正在使用 Beego 编写一个简单的登录/注销功能。
我在router.go 文件中的init() 如下:
func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/login", &controllers.AuthController{})
beego.Router("/verify", &controllers.AuthController{}, "post:Verify")
}
在AuthController:
func (c *AuthController) Verify() {
email := c.GetString("email")
password := c.GetString("password")
fmt.Printf("email: %v password: %v", email, password)
}
我只想将详细信息打印到浏览器(出于调试目的),然后如果用户通过身份验证,则将其重定向到另一个页面。但是这里的问题是Beego总是在寻找模板文件并抛出以下错误:
can't find templatefile in the path:views/authcontroller/verify.tpl
我怎样才能阻止 Beego 那样做,或者我正在做一些“不像 beego”的事情?
【问题讨论】:
-
听起来 Beego 正在寻找一个模板,以便它可以向客户返回一些东西。您希望它返回什么?
-
大概是因为你没有在你的操作中写下一个响应,所以它会寻找一个模板。
-
@AnoopS fmt.Printf 打印到标准输出,它不会将响应写入浏览器。如果要在浏览器中显示数据,首先需要将其存储到
Data映射中,然后通过调用可用的ServeXxx方法之一 (example) 来提供它。我不使用beego,所以我不确定是否有更简单的方法来做到这一点。 -
那么如果不将调试数据传递给您的模板,您希望如何显示调试数据?
-
@mkopriva 感谢您的评论。现在我使用
Data将值传递给模板,它工作正常。