查看“Go网络编程-Middleware (Basic)”的源代码
←
Go网络编程-Middleware (Basic)
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
这个例子将展示如何在Go中创建基本的日志记录中间件。 中间件简单地接受一个http.HandlerFunc作为参数之一,将其包装并返回一个新的http.HandlerFunc供服务器调用。 <br> <syntaxhighlight lang="go">// basic-middleware.go package main import ( "fmt" "log" "net/http" ) func logging(f http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { log.Println(r.URL.Path) f(w, r) } } func foo(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "foo") } func bar(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "bar") } func main() { http.HandleFunc("/foo", logging(foo)) http.HandleFunc("/bar", logging(bar)) http.ListenAndServe(":8080", nil) }</syntaxhighlight> <br> <syntaxhighlight lang="shell">$ go run basic-middleware.go 2017/02/10 23:59:34 /foo 2017/02/10 23:59:35 /bar 2017/02/10 23:59:36 /foo?bar</syntaxhighlight> <br> <syntaxhighlight lang="shell">$ curl -s http://localhost:8080/foo $ curl -s http://localhost:8080/bar $ curl -s http://localhost:8080/foo?bar</syntaxhighlight> <br>
返回至“
Go网络编程-Middleware (Basic)
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息