Метод Beego POST всегда ищет файл шаблона

Я пишу простую функцию входа / выхода с помощью Beego.

Мой init() в router.go файле приведен ниже:

func init() {
    beego.Router("/", &controllers.MainController{})
    beego.Router("/login", &controllers.AuthController{})
    beego.Router("/verify", &controllers.AuthController{}, "post:Verify")
}

In 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»?


person Anoop S    schedule 13.09.2019    source источник
comment
Похоже, Beego ищет шаблон, чтобы что-то вернуть клиенту. Что вы хотите вернуть вместо этого?   -  person Flimzy    schedule 13.09.2019
comment
Предположительно, он ищет шаблон, потому что вы не написали ответ в своем действии.   -  person Peter    schedule 13.09.2019
comment
@Flimzy Я просто хочу отобразить данные отладки (адрес электронной почты, пароль и т. Д.) В браузере. Я исхожу из фона php, и мы можем сделать это просто на php. Я пытался сделать то же самое здесь с Beego.   -  person Anoop S    schedule 13.09.2019
comment
@AnoopS fmt.Printf печатает на стандартный вывод, он не записывает ответ в браузер. Если вы хотите отображать данные в браузере, вам сначала нужно сохранить их на карте Data, а затем обслуживать их, вызвав один из доступных ServeXxx методов (пример). Я не использую beego, поэтому не уверен, есть ли более простой способ сделать это.   -  person mkopriva    schedule 13.09.2019
comment
Итак, как вы хотите отображать данные отладки, если не передавать их в свой шаблон?   -  person Flimzy    schedule 13.09.2019
comment
@mkopriva Спасибо за комментарий. Теперь я передаю значения в шаблон с помощью Data, и он отлично работает.   -  person Anoop S    schedule 13.09.2019


Ответы (1)


если вы не указали тип ответа, beego всегда ищет путь к шаблону по умолчанию.

если вы не хотите отображать шаблон, вы можете установить тип ответа как;

func (c *AuthController) Verify() {
    defer c.ServerJSON() // response type
    email := c.GetString("email")
    password := c.GetString("password")

    fmt.Printf("email: %v password: %v", email, password)
}
person ahmetlutfu    schedule 04.01.2020