-3

我是一个非常新的光纤,并且正在努力在一个包中创建一个服务器,然后在另一个包中共享上下文。

// package main
func init() {
    // Init server
    globs.InitServer()
}

func main() {
    globs.Server.Get("/hello", handlers.HelloWorld)
}

我将服务器初始化为;

// package globs
// global vars
var (
    Conf   map[string]string
    DBPool *pgxpool.Pool
    Loggi  *zap.Logger
    Server *fiber.App
)

func InitServer() {
    srv := fiber.New()
    srv.Use(logger.New())
    Server = srv
    Server.Listen(":3000")
}

最后,我正在尝试将控制器处理为;

// package handlers
func HelloWorld(c *fiber.Ctx) error {
    globs.Loggi.Info("Says Hello")
    return c.SendString("Hello, World !")
}

在编译过程中我没有收到任何错误,并且应用程序启动正常,但它没有识别任何路线。如果我转到“/hello”,它会给出 404 并显示“Cannot GET /hello”

4

1 回答 1

1

您正在调用Server.Listeninit函数。Server.Listen在收听失败之前不会返回,因此您必须在设置完所有内容后将其移至 main 的末尾。

于 2021-05-10T17:25:22.707 回答