欢迎使用 Fiber — 一个用 Go 编写的 Express.js 风格的 Web 框架,️❤️
介绍
你好,世界!👋 今天我们将讨论一个年轻(但雄心勃勃)的Go 语言Fiber Web 框架,并了解它并非“又一个像 X 那样的新框架”,而是一个创建快速 Web 应用程序的绝佳工具。
📌 这将是一篇评论文章,我们将进一步深入研究 Fiber。
目录
什么是纤维?为什么它如此有益?
按照 GitHub 存储库中的官方README进行操作:
Fiber 是一个 Express.js 风格的 HTTP Web 框架实现,运行在Fasthttp之上,Fasthttp 是 Go(Golang)平台上最快的 HTTP 引擎。该包使用与 Express 类似的框架约定。
我倾向于同意这一点。如果你曾经像我一样使用Express.js在 Node.js 上实现过 Web 应用,那么很多方法和原理对你来说会显得非常普通!
例如,这是Hello, World!
Express.js 的标准:
// ...
const app = express()
app.get('/', (req, res) => res.send('Hello, World!'))
app.listen(8080)
Fiber也有类似的例子:
// ...
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) {
c.Send("Hello, World!")
})
app.Listen(8080)
开始使用 Fiber 的有用信息
实际上,您所需要的只是官方文档!😉
Fiber作为一个 Web 框架,以极简主义的理念创建,以便让具有 JavaScript 经验的新手能够更轻松地开始创建 Web 应用程序的后端。
作者自己就是这么说的:
从 Node.js 转换到 Go 的人们经常会遇到糟糕的学习曲线,无法开始构建他们的 web 应用程序,这个项目旨在简化快速开发,但不考虑内存分配和性能。
主要特点
- 针对速度和低内存使用率进行了优化
- 快速服务器端编程
- 使用参数轻松路由
- 具有自定义前缀的静态文件
Next()
具有支持的中间件- Express API 端点
- 扩展文档
轻松启用 prefork 功能
只需在您的代码上设置Prefork
为:true
// ...
app := fiber.New()
app.Prefork = true // enable prefork
app.Get("/", func(c *fiber.Ctx) {
c.Send(fmt.Sprintf("Hi, I'm worker #%v", os.Getpid()))
// => Hi, I'm worker #16858
// => Hi, I'm worker #16877
// => Hi, I'm worker #16895
})
app.Listen(8080)
什么是 prefork?
启用 prefork 功能将生成多个Go进程监听同一端口。Nginx有一篇关于Socket Sharding 的很棒的文章,此图取自同一篇文章 👇
✨ 我最喜欢的杀手级功能 ✨
对我来说,另一个重要功能是可以完全访问所有 Fasthttp 方法和属性(阅读文档以获取更多信息)。
是的,你没听错! Fiber 和Express.js一样非常容易使用,并且具备Fasthttp现有和未来将拥有的所有功能🔥
基准测试🤖
点击此处查看所有基准测试结果。我只会展示部分结果。
- TechEmpower:JSON 序列化
- Go-Web:启用 HTTP 流水线
项目援助
- 为项目添加GitHub Star 。
- 在您的 Twitter 上发布有关该项目的推文。
- 帮助将 README 和API 文档翻译成另一种语言。
摄影:
[标题] Fiber 作者https://gofiber.io/
[1] Nate Grant https://unsplash.com/photos/dFF8z3WH5FI
聚苯乙烯
如果你想在本博客上看到更多类似的文章,请在下方留言并订阅我。谢谢!😻
❗️ 您可以在Boosty上支持我,可以是永久支持,也可以是一次性支持。所有收益都将用于支持我的开源项目,并激励我为社区创作新的产品和文章。
当然,你也可以帮助我改善开发者的生活!只需以贡献者的身份连接到我的一个项目即可。非常简单!
我的主要项目需要您的帮助(和星星)👇
- 🔥 gowebly:下一代 CLI 工具,可轻松使用 Go 在后端创建出色的 Web 应用程序,使用 htmx、hyperscript 或 Alpine.js 以及前端最流行的 CSS 框架。
- ✨ create-go-app:通过运行一个 CLI 命令,创建一个具有 Go 后端、前端和部署自动化的新的生产就绪项目。
我的其他小项目:yatr、gosl、json2csv、csv2api。
文章来源:https://dev.to/koddr/welcome-to- Fiber-an-express-js-styled-fastest-web-framework-writing-with-on-golang-497