使用 os.getenv() 方法获取环境变量。使用 log.println() 或 log.printf() 记录日志信息。使用 database/sql 包连接数据库。使用 net/http 包设置 http 路由。使用 http.handlerfunc 创建 http 中间件。
Go 框架开发实战手册:常见问题答疑荟萃
1. 如何在 Go 应用中使用环境变量?
在 main.go 中使用 os 包:
package main import ( "fmt" "os" ) func main() { // 获取环境变量 host := os.Getenv("HOST") port := os.Getenv("PORT") // 输出环境变量值 fmt.Println("HOST:", host) fmt.Println("PORT:", port) }
登录后复制
2. 如何在 Go 应用中配置日志记录?
使用 log 包:
package main import ( "fmt" "log" ) func main() { // 设置日志输出到控制台 log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) // 记录日志信息 log.Println("Hello world") log.Printf("Error: %s", error) }
登录后复制
3. 如何在 Go 应用中连接数据库?
使用 database/sql 包来连接 MySQL 数据库:
package main import ( "database/sql" _ "<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15841.html" target="_blank">git</a>hub.com/go-sql-driver/<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>" // MySQL 驱动包 ) func main() { // 连接数据库 db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database") if err != nil { log.Fatal(err) } defer db.Close() // 执行查询 rows, err := db.Query("SELECT * FROM users") if err != nil { log.Fatal(err) } defer rows.Close() // 遍历结果集 for rows.Next() { var id int var name string err = rows.Scan(&id, &name) if err != nil { log.Fatal(err) } fmt.Println(id, name) } }
登录后复制
4. 如何在 Go 应用中使用 HTTP 路由?
使用 net/http 包:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello world") }) http.ListenAndServe(":8080", nil) }
登录后复制
5. 如何在 Go 应用中使用 HTTP 中间件?
使用 http.HandlerFunc:
package main import ( "fmt" "net/http" ) func main() { // 定义中间件函数 logger := func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // 执行中间件操作 fmt.Println("Request received:", r.URL.Path) next.ServeHTTP(w, r) // 调用后续处理程序 }) } // 应用中间件 http.Handle("/", logger(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello world") }))) http.ListenAndServe(":8080", nil) }
登录后复制
以上就是golang框架开发实战手册:常见问题答疑荟萃的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:weapp,转转请注明出处:https://www.dingdanghao.com/article/582329.html