简体   繁体   中英

Can Anyone help me with this GoLand terminal Error

I'm using GoLand IDE and I'm getting a problem when running my Go web app. The code isn't compiling when the Terminal is used.

Here is the problem: The terminal duplicated the command prompt when I make an attempt at running the code.

C:\Users\Evan\go\src\awesomeProject9>go run main.go

C:\Users\Evan\go\src\awesomeProject9>
package main

import (
  "fmt"
  "html/template"
  "net/http"
)

var tpl *template.Template

func init(){
  template.Must(template.ParseGlob("templates/*.html"))
}

func main() {
  http.HandleFunc("templates/index", idx)
  http.ListenAndServe("8000", nil)
  fmt.Println("hello World")
}

func idx(w http.ResponseWriter, r *http.Request){
  tpl.ExecuteTemplate(w, "templates/index.html", nil)
}

Thanks to @zerkms for pointing out, that I was wrong. I simply ran into the exact mistake I tried to warn you later on:

you really should use the err returned by called functions, since these really help you a lot: For startes simply:

err := http.ListenAndServe("8000", nil)
if err != nil {
  log.Fatal(err)
}

This panics with:

2018/12/18 10:43:16 listen tcp: address 8000: missing port in address

the correct line should be

err := http.ListenAndServe(":8000", nil)

WRONG only for documentation

ListenAndServe doesn't block the further code execution....

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM