You are comparing a framework with a programming language (actually Node.js is not even that, it's a js runtime).
That being said there are some strong frameworks in the nodejs world itself. If you want something inspired by RoR/Laravel, go check out AdonisJs, it comes with many RoR concepts like active record, convention over configuration etc. Also has db migrations and everything. (I've written some articles about it)
There are some more higher level frameworks like Nestjs but haven't looked into it much.
Example of how a test looks like in AdonisJs:
test('resets password with correct token',async({assert,client})=>{constuser=awaitFactory.model('App/Models/User').create()consttoken=await(newTokenService).generateToken(user.email)constresponse=awaitclient.post('/password/reset').send({email:user.email,token,password:'new password'}).end()awaituser.reload()response.assertStatus(200)response.assertJSON({message:'Password reset successful.'})assert.isTrue(awaituser.verify('new password'))})
You are comparing a framework with a programming language (actually Node.js is not even that, it's a js runtime).
That being said there are some strong frameworks in the nodejs world itself. If you want something inspired by RoR/Laravel, go check out AdonisJs, it comes with many RoR concepts like active record, convention over configuration etc. Also has db migrations and everything. (I've written some articles about it)
There are some more higher level frameworks like Nestjs but haven't looked into it much.
Example of how a test looks like in AdonisJs:
I don't like async/await at all. Its making code more hard to understand and debug.
In the case of Ruby mostly all web ecosystem working around Rails.