为什么使用go fiber?

image.png

出于好奇心,之前就听闻过这个框架,虽然我的不会Express,听说Fiber是一个参考了Express的Web框架,建立在Go语言写的最快的FasthttpHTTP引擎的基础上。

按官网说的:皆在简化 零内存分配和提高性能,以便快速开发。

至于为啥不用Gin,beego,iris,echo,gf·····感觉上面哪些的框架目前市面上应该是已经很多人,有自己的教脚手架了!我自己出于刚重新接触GO回来没多久的!尝鲜的过程中去学东西也是很有感觉的!所以试一试吧!

目前的它已经出到了V2的版本了,和V1的差别还是比较大的!百度一番之后,也没教程!惯例!哈哈搬砖系列~之官网!!

Fiber 的特点(优势)

官网的大佬的给的几个点:

  • 强大的路由
  • 静态文件服务
  • 极限表现
  • 内存占用低
  • API 接口
  • 中间件和Next支持
  • 快速服务器端编程
  • 模版引擎
  • WebSocket 支持
  • 频率限制器
  • 15 种语言

Fiber的限制

由于 Fiber 使用了 unsafe 特性,导致其可能与最新的 Go 版本不兼容。Fiber 2.18.0 已经在 Go 1.14 到 1.17 上验证过。Fiber 与 net/http 接口不兼容。这意味着你无法使用 gqlen,go-swagger 或者任何其他属于 net/http 生态的项目。

Fiber v2.21.0 版本初步使用

本节内容:

  • 热更新插件使用
  • Fiber app对象的配置项
  • Fiber app路由和路由组
  • Fiber app启动监听自定义(http和https的配置)

1、来自官网的示例代码

1.1 fresh热重启

插件:

D:\code\go\awesomeProject1>gogetgithub.com/pilu/fresh

使用:

D:\code\go\awesomeProject1>fresh
20:23:57runner|InitFolders
20:23:57runner|mkdir./tmp
20:23:57runner|mkdir./tmp:Cannotcreateafilewhenthatfilealreadyexists.
20:23:57watcher|Watching.
20:23:57main|Waiting(loop1)...
20:23:57main|receivingfirstevent/
20:23:57main|sleepingfor600milliseconds
20:23:57main|flushingevents
20:23:57main|Started!(5Goroutines)
20:23:57main|removetmp\runner-build-errors.log:Thesystemcannotfindthefilespecified.
20:23:57build|Building...
20:23:58runner|Running...


自己玩的示例代码:

packagemain

import(
"fmt"

"github.com/gofiber/fiber/v2"
)

funcmain(){
app:=fiber.New()

//定义全局的中间件
app.Use(func(c*fiber.Ctx)error{
fmt.Println("