使用 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
