Okay so here's the plan. I will try to create a new javascript backend framework (most probably not because I'm just trying to rewrite pre-existing backend frameworks). My plan for now is to Understand how all of this works. So My first step is to re-create what others have already made, And then I'll move on to making and architecture of the "new" framework.
Introducing Ramen 🍜
yet another open source backend rest API framework! For now all this is, is a cheap copy of Express
You can find the repository for ramen here Currently as of when I'm writing this post, Ramen has the functionality to
- Detect query parameters
- Route parameters
- Get all the headers
- Send / write a response object
and it follows the route-by-route kind of routing, Where if a user goes to let's say 'http://ip:port/something/id' it will try to match this with different kind of functions provided to the server. And whichever function comes first (i.e. whichever function was appended first) will be used to process that request. It is also capable of finding query parameters, for example if you go to the URL 'http://ip:addr?foo=bar' you can access the value of foo by the Request object provided to you by Ramen simply by doing
req.queryParams I'll try to log all the developments I make in Ramen here only. And somehow this will keep me motivated to keep this project alive all the time :)


Latest comments (24)
All the best
Keep going ! Good luck !
This is inspiring, keep it up
cool but frameworks being born everyday sucks on dev ends, which we all guilt of and yet also victims, anyway, it's very courageous to take on such a big task whole heartedly, I hope you will make it, am struggling to document my CSS framework, anyone interested in building a CSS framework?
That's a great one bro!! Ramen on the move. The name is ... 😂
This is quite cool!
Building a framework is not an easy feat - I've tried myself. I'm glad you found enough motivation to start on such a big project! Looking forward to seeing your work!
I appreciate the fact that you have very good understanding of how computers and browsers interact.
Good job! Playing with some stuff like this helps to understand many things behind the scene. I confirm that because I created restfun for the same idea.
To parse query parameters from URL, you can use URLSearchParams or node:querystring. I used URLSearchParams first, then realized that
querystringis much faster.Anyway, there utils give you
req.queryin express without manually parsing url string. You may need them to parse form data too.Form can be submitted with 'application/x-www-form-urlencoded' or 'application/json' type. If that's 'application/json' you can use JSON.parse as you do. But when that's 'application/x-www-form-urlencoded', you must handle submitted data as url query string.
For
req.params, you can use URLPattern polyfill because it has not been implemented in Node.js yet. It can help to handle router and find the matched ones.I've used this polyfill at first and it worked as well, but the performance is not good (just similar to express). So I replaced it with find-my-way to get better performance (x7 faster than express). You can also refer regexparam and @funjs/route-parser.
There are several algorithms for router matching we can investigate when possible. But among the nodejs frameworks, the uWebSockets.js based ones are still the fastest.
That's a good one bro.
Nice 🌺.
Go Ahead Bro 💪
Some comments may only be visible to logged-in visitors. Sign in to view all comments.