Sitaram Shelke
Sitaram Shelke

Reputation: 31

Printf not working in http handler in golang

I am trying to write a web server using Go-bootstrap library and I have written my own handler in handler/users which is called on a post request on localhost/app/signup. I am trying to print the json data to the terminal but fmt.Printf() prints nothing. The files are as follows:

In handler/users

func AppPostSignup(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    fmt.Println("In AppPostSignup")
    data := map[string]interface{}{}
    body, _ := ioutil.ReadAll(r.Body)
    json.Unmarshal(body, &data)
    db := context.Get(r, "db").(*sqlx.DB)
    email := data["Email"]
    password := data["Password"]
    passwordAgain := data["PasswordAgain"]
    fmt.Printf("\ntype : %T\nData: %v", email, email)
    _, err := dal.NewUser(db).Signup(nil, email.(string), password.(string), passwordAgain.(string))
    if err != nil {
        libhttp.HandleErrorJson(w, err)
        return
    }
}

In main.go

router.Handle("/", MustLogin(http.HandlerFunc(handlers.GetHome))).Methods("GET")

router.HandleFunc("/signup", handlers.GetSignup).Methods("GET")
router.HandleFunc("/signup", handlers.PostSignup).Methods("POST")
router.HandleFunc("/login", handlers.GetLogin).Methods("GET")
router.HandleFunc("/login", handlers.PostLogin).Methods("POST")
router.HandleFunc("/app/signup", handlers.AppPostSignup).Methods("POST")
router.HandleFunc("/authenticate", handlers.Authenticate).Methods("POST")
router.HandleFunc("/logout", handlers.GetLogout).Methods("GET")

What did I do wrong?

Upvotes: 0

Views: 2571

Answers (1)

Doug Richardson
Doug Richardson

Reputation: 10821

I just tested your code and I saw the following printed to the console:

In AppPostSignup

My guess is that you tried to test your /app/signup endpoint using a GET request, when you have it marked only as a POST request.

If you really want it to be a POST request, then you can test it with curl like so:

curl -X POST localhost:8888/app/signup

Note, that request is missing a valid body, but you will be able to see your message printed.

Upvotes: 4

Related Questions