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)
- ๐ [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
- ๐ค [Question]: v3 when ready for production HOT 1
- ๐ [Bug]: Unclear "json: invalid use of ,string struct tag, trying to unmarshal unquoted value into uint64" HOT 9
- ๐ค [Question]: Cache Next is not called when KeyGenerator is Defined HOT 6
- ๐ [Bug]: v3 Flash Message with redirect is not working HOT 3
- ๐ [Proposal]: Upgrade fiber.NewError() for error handle HOT 4
- ๐ [Proposal]: Reduce memory usage for "prefork" mode of the master process HOT 2
- ๐งน [Maintenance]: Add Parallel Benchmarks
- ๐ค [Question]: zero allocation - why is this any different from how Chi or others behave? Can you document an example of what you mean? HOT 8
- ๐ค [Question]: FX with Fiber graceful shutdown Failed to stop cleanly: context deadline exceeded HOT 15
- ๐ค [Question]: whats the session id injection issue in github report HOT 4
- ๐ [Bug]: Mutex issues with Idempotency middleware
- ๐ [Bug]: Logger module causes OOM with ${bytesSent} and ${bytesReceived} HOT 10
- ๐ค [Question]: limiter supports dynamic setting of โMaxโ parameter HOT 8
- ๐ [Proposal]: Add StartupProbe support to healthcheck Middleware HOT 6
- [Question]: Can't debug in Goland in Routes HOT 2
- ๐ [Bug]: cache middleware: runtime error: index out of range [0] with length 0 HOT 15
- ๐ [Proposal]: Get session by its ID HOT 1
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.