个人写gomall项目遇到的问题

284 阅读1分钟

问题1:一直报错email or password or confirm password is empty

原因:auto_page.proto中的confirm_password需要和home.tmpl中的字段对应。

我的前端是直接复制gomall的template文件夹,他的home.tmpl文件这个字段并不和auto_page.proto对应

问题2:对接consul后接口无法使用。

下面这种应该是正常的情况,错误的情况下没有注册服务。下图页面是localhost:8500可以打开

image-20241109234414649

具体实现:

frontend/main.go的main函数添加

rpc.Init()

client.go

package rpc
​
import (
    "github.com/cloudwego/biz-demo/gomall/app/frontend/conf"
    frontendUtils "github.com/cloudwego/biz-demo/gomall/app/frontend/utils"
    "github.com/cloudwego/biz-demo/gomall/rpc_gen/kitex_gen/user/userservice"
    "github.com/cloudwego/kitex/client"
    consul "github.com/kitex-contrib/registry-consul"
    "sync"
)
​
var (
    UserClient userservice.Client
​
    once sync.Once // 保证只初始化一次
)
​
func Init() {
    once.Do(func() {
        initUserClient()
    })
}
​
func initUserClient() {
​
    r, err := consul.NewConsulResolver(conf.GetConf().Hertz.RegistryAddr)
    frontendUtils.MustHandleError(err)
​
    UserClient, err = userservice.NewClient("user", client.WithResolver(r))
​
    frontendUtils.MustHandleError(err)
}

user/main.go

func kitexInit() (opts []server.Option) {
    // address
    addr, err := net.ResolveTCPAddr("tcp", conf.GetConf().Kitex.Address)
    if err != nil {
        panic(err)
    }
    opts = append(opts, server.WithServiceAddr(addr))
​
    // service info
    opts = append(opts, server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{
        ServiceName: conf.GetConf().Kitex.Service,
    }))
​
    r, err := consul.NewConsulRegister(conf.GetConf().Registry.RegistryAddress[0])
    if err != nil {
        klog.Fatal(err)
    }
    opts = append(opts, server.WithRegistry(r))
​
    return
}

问题3:把biz-demo打错成biz-domo。导致依赖一直报错,找了很久

其实视频中有个行为很不正确。就是很多路径都是手动输入,很容易导致错误,尽量复制粘贴。

Makefile

gen-frontend:
    @cd app/frontend && cwgo server --type HTTP --idl ../../idl/frontend/home.proto --service frontend --module github.com/cloudwego/biz-demo/gomall/app/frontend -I ../../idl
​
​
gen_rpc:
    @cd rpc_gen && cwgo client --type RPC --service user --module github.com/cloudwego/biz-demo/gomall/rpc_gen --I ../idl --idl ../idl/user.proto
​
gen_app_user:
    @cd app/user && cwgo server --type RPC --service user --module github.com/cloudwego/biz-demo/gomall/app/user --pass "-use github.com/cloudwego/biz-demo/gomall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/user.proto
​

问题4 使用wsl2作为开发环境。如何在windows浏览器下查看的页面

wsl输入。inet addr后面是wsl地址

ifconfig eth0

例如:inet x.x.x.x

使用x.x.x.x:8080即可打开前端页面