Files
koanf-nacos-provider/README.md

83 lines
1.3 KiB
Markdown
Raw Normal View History

2023-12-21 15:11:05 +08:00
# koanf-nacos-provider
2023-12-21 14:27:05 +08:00
## introduction
2023-12-21 15:11:05 +08:00
koanf的Nacos服务提供者。
2023-12-21 14:27:05 +08:00
## install
```go
2023-12-21 15:03:25 +08:00
go get github.com/cowardmrx/koanf-nacos-provider
2023-12-21 14:27:05 +08:00
```
## usage
```go
package main
import (
"fmt"
"github.com/knadh/koanf/parsers/yaml"
"github.com/knadh/koanf/v2"
)
var (
k = koanf.New(".")
conf = YourConfig{}
)
type YourConfig struct {
// Fields
Username string `yaml:"username"`
}
func main() {
2024-01-03 10:36:20 +08:00
np,err := Provider(Config{
2023-12-21 14:27:05 +08:00
Host: "ip or domain",
Port: 8848,
NamespaceId: "",
Group: "",
ConfigName: "",
})
2024-01-03 10:36:20 +08:00
if err != nil {
fmt.Println("get provider failed: ",err.Error())
return
}
2023-12-21 14:27:05 +08:00
if err := k.Load(np, yaml.Parser()); err != nil {
// error
fmt.Println(fmt.Errorf("error: %w", err))
return
}
if err := k.Unmarshal("", &conf); err != nil {
// error
fmt.Println(fmt.Errorf("error: %w", err))
return
}
// watch
if err := np.Watch(func(data interface{}, err error) {
k = koanf.New(".")
if err = k.Load(np, yaml.Parser()); err != nil {
// error
fmt.Println(fmt.Errorf("error: %w", err))
return
}
err = k.Unmarshal("", &conf)
if err != nil {
// error
fmt.Println(fmt.Errorf("error: %w", err))
return
}
fmt.Println("2 ", conf.Username)
// do something
}); err != nil {
// error
fmt.Println(fmt.Errorf("error: %w", err))
return
}
}
```