Fiber是一种编程语言(golang)
纤维是什么意思?
这是一种Golang的框架。
根据官方页面的说法,
Fiber 是一个基于 Fasthttp 构建的 Express 风格的 Web 框架,而 Fasthttp 是 Go 语言中最快的 HTTP 引擎。
Fiber是一个受到Express启发并在Fasthttp(Go语言中最快的HTTP引擎)上构建的Web框架。
(从概念上来说,可以将其视为将golang的速度与Express的易用性相结合的框架。)
亲自体验一下光纤。
我们来实际看代码。
为了开始安装,需要执行go get命令。
$ go get -u github.com/gofiber/fiber/v2
在main.go文件中按照以下方式进行编写。
package main
import "github.com/gofiber/fiber/v2"
func main() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World!)")
})
app.Listen(":3000")
}
执行以下命令,使用浏览器访问 http://localhost:3000 ,将会返回“Hello, World!”的页面。
$ go run main.go
与Express相比
也许有过使用Express经验的人会感到惊讶。
正如所说的“受Express启发的网络框架”,可以看出它们非常相似。
接下来,让我们来看看如何用Express来描述相同的处理过程。
(※此处省略了Express的安装方法等内容。)
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(3000, () => {
console.log('Example app listening at http://localhost:3000')
})
好像很相似呢!
关于速度的问题(引用)
由于有进行基准测试,所以我进行了部分引用。
フレームワークFiberExpressレスポンス(データ更新) [回/秒]118462066平均待ち時間(データ更新) [ms]42.8390.44レスポンス(単一クエリ) [回/秒]36864757880平均待ち時間(単一クエリ) [ms]0.74.4レスポンス(複数クエリ) [回/秒]196644302平均待ち時間(複数クエリ) [ms]25.7117.2
无论是哪个结果,光纤都非常优秀。
关于Fiber的其他描述
基本上,您也可以使用类似于Express的方式来编写其他处理。
package main
import "github.com/gofiber/fiber/v2"
func main() {
app := fiber.New()
// 基本的なルーティング
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World!)")
})
// 静的ファイルのルーティング
app.Static("/static_file", "./public/index.html")
// ミドルウェアとNextを使用する場合
app.Use(func(c *fiber.Ctx) error {
fmt.Println("middreware and next")
return c.Next()
})
app.Listen(":3000")
}
最后
本文总结了以下两点。
-
- Fiberとはどういったものなのか
- Expressとの比較
由于只简单概述了一下,所以下一篇文章我希望能更深入地讨论关于Fiber的使用。
请提供更多背景信息以便引用
-
- https://docs.gofiber.io/extra/benchmarks
-
- https://github.com/gofiber/fiber
-
- https://expressjs.com/
- https://docs.gofiber.io/#basic-routing