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
广告
将在 10 秒后关闭
bannerAds