📜  如何用 Golang 搭建一个简单的 Web 服务器?

📅  最后修改于: 2022-05-13 01:55:29.131000             🧑  作者: Mango

如何用 Golang 搭建一个简单的 Web 服务器?

Golang 是一种过程编程语言,非常适合构建简单、可靠和高效的软件。

使用 NodeJS 创建 Web 服务器:

初始化一个项目

创建一个包含 .go 文件的项目文件夹,例如。服务器。去。

目录结构:

server.go文件:



Go
package main
  
import (
    "fmt"
    "log"
    "net/http"
)
  
func main() {
  
    // API routes
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello world from GfG")
    })
    http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hi")
    })
  
    port := ":5000"
    fmt.Println("Server is running on port" + port)
  
    // Start server on port specified above
    log.Fatal(http.ListenAndServe(port, nil))
}


HTML

  
    Home
  
  
    

Home page

  


HTML

  
    About
  
  
    

about page!

  


Go
package main
  
import (
    "fmt"
    "log"
    "net/http"
)
  
func main() {
  
    // API routes
  
    // Serve files from static folder
    http.Handle("/", http.FileServer(http.Dir("./static")))
  
    // Serve api /hi
    http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hi")
    })
  
    port := ":5000"
    fmt.Println("Server is running on port" + port)
  
    // Start server on port specified above
    log.Fatal(http.ListenAndServe(port, nil))
  
}


使用以下命令运行服务器(确保您在项目目录中):

go run server.go

注意:每当 server.go 文件更改时,您必须使用 Ctrl + C 停止服务器并通过相同的命令重新启动。
安慰:

打开所需的 Web 浏览器和以下任何 URL 以验证服务器是否正在运行:

http://localhost:5000/ or http://localhost:5000/hi

输出:

提供静态文件:

创建一个包含所有静态文件的静态文件夹。
示例目录结构:

示例静态文件:

  • GfG 标志
  • index.html文件

HTML


  
    Home
  
  
    

Home page

  
  • about.html文件

HTML


  
    About
  
  
    

about page!

  

现在编辑server.go 文件:

package main
  
import (
    "fmt"
    "log"
    "net/http"
)
  
func main() {
  
    // API routes
  
    // Serve files from static folder
    http.Handle("/", http.FileServer(http.Dir("./static")))
  
    // Serve api /hi
    http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hi")
    })
  
    port := ":5000"
    fmt.Println("Server is running on port" + port)
  
    // Start server on port specified above
    log.Fatal(http.ListenAndServe(port, nil))
  
}

验证是否提供静态文件: