简介
静态资源模块,提供基于 Go embed.FS 的嵌入文件系统访问能力。支持检查文件是否存在和读取 JSON 配置文件(严格模式和宽容模式)。严格模式在文件读取失败或解析失败时直接抛出异常并退出,宽容模式返回错误供业务代码处理。
导入
go
import "github.com/wallace5303/ee-go/estatic"API
StaticFS
说明:嵌入文件系统实例,类型为 embed.FS。业务代码通过此变量访问编译时嵌入的静态资源文件。
类型:embed.FS
示例:
go
data, err := estatic.StaticFS.ReadFile("config/app.json")
if err != nil {
fmt.Println("读取失败:", err)
}FileIsExist(name)
说明:检查嵌入文件系统中是否存在指定文件。通过调用 StaticFS.ReadFile 并检查是否返回错误来判断文件是否存在。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 嵌入文件系统中的文件路径,例如 "config/app.json" |
返回值:bool — 文件存在返回 true,不存在返回 false
示例:
go
if estatic.FileIsExist("public/html/failure.html") {
fmt.Println("嵌入文件系统中存在该文件")
}ReadJsonStrict(f)
说明:从嵌入文件系统读取 JSON 文件并解析为 map[string]any。严格模式:读取失败或 JSON 解析失败时,调用 eerror.ThrowWithCode 抛出异常并退出进程(退出码为 ExitConfigFileFS)。适用于必须存在的配置文件。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| f | string | 是 | 嵌入文件系统中的 JSON 文件路径 |
返回值:map[string]any — JSON 文件解析后的键值映射
示例:
go
config := estatic.ReadJsonStrict("config/app.json")
fmt.Println("应用名称:", config["name"])参见:eutil.ReadJsonStrict — 从磁盘文件系统读取 JSON(严格模式)
ReadJson(f)
说明:从嵌入文件系统读取 JSON 文件并解析为 map[string]any。宽容模式:读取失败或 JSON 解析失败时返回错误,不退出进程。适用于可选配置文件。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| f | string | 是 | 嵌入文件系统中的 JSON 文件路径 |
返回值:(map[string]any, error) — 成功时返回 JSON 解析结果和 nil,失败时返回 nil 和错误信息
示例:
go
config, err := estatic.ReadJson("config/optional.json")
if err != nil {
fmt.Println("可选配置未找到,使用默认值")
config = map[string]any{}
}
fmt.Println("配置:", config)参见:eutil.ReadJson — 从磁盘文件系统读取 JSON(宽容模式)
