Comments (4)
I have created a simple logger https://github.com/gofiber/fiber/blob/master/middleware/morgan.go, this is just an example on how internal middlewares are build up.
package main
import (
"github.com/gofiber/fiber"
"github.com/gofiber/fiber/middleware"
)
func main() {
app := fiber.New()
app.Use(middleware.Morgan())
// app.Use(middleware.Cors())
// app.Use(middleware.Helmet())
// app.Use(middleware.Session())
// app.Use(middleware.CSurf())
// app.Use(middleware.Limiter())
// etc...
app.Get("/", func(c *fiber.Ctx) {
c.Send("Hello, World!")
})
app.Listen(3000)
}
I would like to replicate the following express middlewares for fiber this month:
middleware.Morgan
https://github.com/expressjs/morganmiddleware.Session
https://github.com/expressjs/sessionmiddleware.Cors
https://github.com/expressjs/corsmiddleware.CSurf
https://github.com/expressjs/csurfmiddleware.Limiter
https://github.com/nfriedly/express-rate-limit
from fiber.
@koddr, great suggestion. I'm not home right now but I want to finish the middleware structure tomorrow so we can start writing many midware apps.
Regarding the logger idea, it looks like a good tool. I would like a morgan like system for fiber.
I will continue tonight to get the middleware package ready for development.
Middleware plans for feb
- Helmet (security headers)
- Morgan (logger)
- Cors (cors headers)
from fiber.
@Fenny wow, it's good point 👍
One little question about naming of logger: can we change/symlinked it? I mean, Morgan
for logger it's okay, but not really (for some people, who doesn't know Node.js ecosystem).
Would be great and more understandable — re-name Morgan
to Logger
and hide info (like easter egg) about it to comments into middleware file ./middleware/logger.go
OR create symlink to this function (to have access to both Morgan()
and Logger()
), If you want to keep this naming.
I know, you have good Node.js background, but sometimes, similar naming (without fallback to understandable) is huge trouble to promote project to all layers of coders around the programming languages (and stacks).
Please, think about it 😉
from fiber.
Agreed 👍
from fiber.
Related Issues (20)
- 🤗 [Question]: Does Fiber handle each request in different goroutines? HOT 2
- 📝 [Feature] [v2]: Add a function to get the session expiry HOT 5
- 🐛 [Bug]: setting a Logger that access TLSConnectionState() will break when `app.Server().MaxConnsPerIP` is set to a value HOT 9
- 🤗 [Question]: Fiber http with Cloudflare ssl reverse leading to 525, SSL handshake failed HOT 2
- 🤗 [Question] Is Fiber going to be used for Rust? HOT 3
- proxy.Balancer middleware should handle http backend servers when using app.ListenTLS HOT 2
- 🤗 [Question]: How to get the form data from the html form object? HOT 1
- 📝 [Proposal]: Add support for zstd compression
- 📝 [Proposal]: Add support for CHIPS (Cookies Having Independent Partitioned State)
- 🐛 [Bug]: incorrect selection of the error handler if one of the sub apps is mounted on "/" HOT 2
- 🤗 [Question]: gofiber v3 rc release date? HOT 2
- 📝 [Proposal]: v3 auto binding HOT 2
- 🤗 [Question]: Does fiber v3's Request not have the function of adding files to FormData? HOT 3
- 🤗 [Question]: I have a problem with Middleware HOT 10
- 🤗 [Question]: Is `fiber.Ctx` thread safe? If not, is that documented? HOT 8
- 🤗 [Question]: A new Redis key is created every time the url is accessed. Is this normal? HOT 5
- [question]: Why do long requests block each other? HOT 15
- 🐛 [Bug]: Limiter middleware with pebble storage does not deduct remaining limit
- 📝 [Proposal]: Improving route matching and url parsing performance with Ada Url HOT 7
- Improve Error Handling in CSRF Middleware Storage
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fiber.