安装路由库
首先:为什么要安装gorilla/mux路由库?
gorilla/mux 是 Go 语言中最流行的第三方 HTTP 路由库,它在标准库 net/http 的基础上,提供了更强大、更灵活的路由匹配和管理功能,是构建 Go Web 服务的常用工具。
Go 标准库 net/http 的路由功能非常基础,仅支持精确路径匹配,无法满足复杂场景。gorilla/mux 正是为了弥补这些不足而生的。
路径参数 :gorilla/mux支持/api/users/{id}这样的路径参数提取。
HTTP 方法限制:可以直接指定Methods("GET", "POST")无需像标准库net/http一样在handler中判断HTTP方法。
正则匹配:支持 /api/users/{id:[0-9]+}这样的正则匹配。
路由分组:支持按前缀分组(如 /api、/admin)这样的路由分组。
中间件集成:同时还具有原生支持中间件链,而无需手动封装的中间件集成环境。
接下来介绍如何安装
安装代码
go get github.com/gorilla/mux
在安装代码过程中遇到问题如何解决
C:\Windows\System32>go get github.com/gorilla/mux
go: go.mod file not found in current directory or any parent directory.
'go get' is no longer supported outside a module.
To build and install a command, use 'go install' with a version,
like 'go install example.com/cmd@latest'
For more information, see https://golang.org/doc/go-get-install-deprecation
or run 'go help get' or 'go help install'.
这个报错是因为我在系统目录(C:\Windows\System32)下运行命令,且该目录不是一个 Go 模块。结合你提供的官方文档,我来帮你理清问题并给出正确步骤
报错原因拆解
-
缺少Go模块:从 Go 1.16+ 开始,go get/go install 必须在一个包含 go.mod 文件的 Go 模块目录下运行(或其子目录)
-
目录错误:不要在 C:\Windows\System32 这种系统目录下写代码 / 放项目,容易有权限问题且混乱
-
命令用途混淆:
go get:不再用于安装可执行文件,现在仅用于添加 / 更新 / 删除 go.mod 中的依赖库(比如 gorilla/mux 这种库)go install:用于安装可执行文件(比如工具类命令)
正确的操作步骤
- 离开 System32 目录,创建并进入项目目录
在命令行中依次执行:
# 回到用户主目录(避免在系统目录操作)
cd %USERPROFILE%
# 创建项目文件夹(名字自定义)
mkdir go-projects
cd go-projects
mkdir my-go-server
cd my-go-server
- 初始化 Go 模块(生成 go.mod)
在 my-go-server 目录下执行:
# 模块名可以自定义,比如 "my-go-server" 或 "github.com/你的名字/my-go-server"
go mod init my-go-server
执行后会生成一个 go.mod 文件,现在你就在一个合法的 Go 模块中了。
- 安装 gorilla/mux 依赖库
现在可以安全地用 go get 安装库了:
# 安装 gorilla/mux(会自动添加到 go.mod 并下载)
go get github.com/gorilla/mux
- go install 的正确用法(安装可执行文件) 如果你以后需要安装一个可执行工具(比如 swag 文档生成工具),要用 go install 并带版本后缀:
# 示例:安装 swag 最新版(可执行文件)
go install github.com/swaggo/swag/cmd/swag@latest
这种方式不会修改当前目录的 go.mod,适合全局安装工具。
现在gorilla/mux路由库就安装在我们的电脑上了,快去试试吧!