| The main pain with Node, if you come from outside, is being able to know which modules are well supported, and will be for the years coming. As an example, I spent quite a long time investigating ORM libraries for relational DBs, and the projects that were half dead were the majority. Knex was suggested by everyone, but at that time the project leadership was changing so the future was uncertain. I settled on Sequelize, which had most of the functionality, but several points did not make sense: - the documentation is hard to search - I had to create a PR for sequelize-cli (separate module, that is not recommended for production!) to get the same functionality of `rails db:create` - the syntax was changed to use Op instead of strings for security, in a minor version - the way associations are defined is weird at best - no support for ES6 in the cli, so all migrations are ES5 Etc. And this is just for an API server. I looked into the frontend part and it was so much work. I am still using Node for server processes when I have to, but I wouldn't recommend it over Rails. The way you can generate a simple app that does something useful, configure it and deploy it to Heroku in few hours is unchallenged. |
Doesn't matter if you're coming from outside or not, no one can predict the future.
For example winston was probably the most recommended logging library (14k stars) and was a good recommendation at one point. But then they decided to do a rewrite for v3 which introduced a ton of bugs and incompatibilities. I spent several days trying to get it to log in the old format and failed and ended up downgrading back to v2.
This is a recurring theme in the js ecosystem (another example is react-router which is just a huge piece of shit and no one should depend on it despite its 37k stars).