Originally published at softwareontheroad.com
I’m so tired of reading articles claiming what is the best node.js framework based on biased opinion...
For further actions, you may consider blocking this person and/or reporting abuse
I strongly believe AdonisJS should be like No. 1 on this list. Good thing though is it made the list.
As far as I am concerned, it's my No. 1 for all times when it comes to JavaScript Frameworks
I agree. Not sure how it stacks up against Hapi but this definitely needs to be #1 or at least a #2 behind Express. My approach to learning frameworks is to have one monolithic framework and one micro framework learned per programming language. For PHP, I use Slim and Laravel. For Python, I use Flask and Django. For Java, I use Spark and Spring Boot. In Node.js so far I've only learned Express, but I would say it's like Flask and Slim, it's a micro framework, but for when I'm needing to save time and have something that includes all of the essentials, I would take a look at Adonis.
It is healthy to learn a microframework but I feel like Express can't really be compared to Flask. Flask does all the basics for you like cookies, sessions, and templating engine but Express doesn't. Express is a bit too flexible; you shouldn't have to worry about such rudimentary things when making servers.
We'll I put them side by side because both of them require you to patch in your own libraries for some things, like ORM. A full framework will include most, if not all things that are commonly used to build apps
It’s such a great and easy to learn framework :)
Especially for developers who have been using Laravel. Adonis is inspired by Laravel, hence it is called Laravel of Node.js.
However, I am not sure about its maturity/stability, so I postpone to learn it further. But when it gets wide acceptance from the community, I will use it. Currently, I am considering Hapi.js to be my option.
Nest doesn't belong on this list. It gets out of control really quickly and suddenly you realize you've landed in an old school ASP MVC or Zend app where new developers have to spend a month ramping up to figure out where everything is and groking the abstraction layers. Nest might be okay for small apps, but it'll get out of control and then you're back to the "memorization driven development" that we used to lean on in old school monoliths.
Take a look at Plant. It's a WebAPI based framework. And it seems like it's the only which supports HTTP/2 pushes. It's transport agnostic what means you can deliver requests via HTTP(S), WebSocket, WebRTC, etc. Also it works in browser without compilation/browserification due to its' WebAPI compatibility and transport agnosticism, though you can develop your server using text editor and DevTools for debugging.
I wrote it and ready to answer questions.
P.S. You place too much advertisement into the post. It's too unfriendly to the readers.
Do you know how does it compare performance wise versus Fastify? Having a benchmark would be nice. (My use case does benefit from performance, so I'm choosing between frameworks mainly on performance + availability of extra plugins and DevEx)
On hello world test its' performance was about express'. But on my machine koa was always behind express and on fastify's benchmarks it's not. Need a verification.
Super high performance has never been the main goal of the current development iteration, I've just been holding it on acceptable level before API became stable. Currently I'm working on improvement which should make Plant faster than others with extra deep optimizations, but it's a piece of work. Not sure if it will be done very soon.
Seems like an amazing framework, I’ll try it :)
Glad to see fastify on this list 👍
For my specific use case (pure rest api with a mobile client) it looks to be the perfect alternative. Actually thinking of switching from Koa+debug.js!
I hope to be using fastify soon !!
If y'all want something more express.js like and really wanna go barbones, I recommend checking out Polka: A micro web server so fast, it'll make you dance! 👯
People who don't really know the inner workings of AdonisJS think it can be used exclusively for MVC apps only.
There is a slim version of AdonisJS that can be used to build out APIs and microservices, if Microservices are your thing.
Even though it favours SQL based databases, it is extensible enough for new additions and we have seen the community create packages that supports the use of mongodb and/or graphql.
The beauty of AdonisJS is it helps you get out of your own way, also you should check out the latest version, AdonisJS v5 which was re-written from the ground-up with support for Typescript
Also, Polka should probably get a mention too, considering how dominant it is in benchmark tests vs others, and how highly it ranked in user satisfaction (see Eran Hammer's article on Node framework dominance in 2019)
Thanks for sharing about Polka, seems like a pretty sweet framework to work with!
How does it stack up against Fastify performance wise? Would be nice to see it in the leaderboard here: fastify.io/benchmarks/
What about eggjs (eggjs.org) ?
Why is it very rarely mentioned in any articles on node frameworks ? Because it is made in China ?
A lot of people love Vue.js and Ant Design (Antd) which are essentially made by chinese guys, but tend to ignore this node framework.
I read from its official site that its design philosophy and goal are encouraging. However I just cannot get started on it before I am convinced that it has wide acceptance by community. Its Github star is quite impressive, but I suspect it's largely from developers in China.
I am currently learning Express, Feathers and Hapi in parallel. But your introduction of Fastify immediately trigger me to visit its site. The site says Fastify is inspired by Hapi and Express but offers better performance, so I should learn it too. Koa is interesting too.
Only after having sufficient skills in these "traditional" but fundamental frameworks, I can try modern frameworks like Total.js (totaljs.com/platform) that draws my attention too.
From my perspective, sails.js should be first before adonis because it's battle tested and has an efficient ORM much more simpler than others, its main advantage is its waterline and self validation actions, secondly, why's loopback not in the list?
Loopback is at number 7 in this list.
What is supporting the abstraction of async/await syntax ?
Generators and coroutines :D
AdonisJS is definitely in the top 3 most used NodeJS MVC Framework.
It’s awesome to see so much community around AdonisJS :)