I found Express.js and it's sister-framework Connect to be a complete mess. I had trouble following what was going on, major problems debugging, it uses the factory pattern in the wrong places, and the Rack-style middleware is inefficient and unnecessary for most projects. But NodeJS itself is great, and to learn it best I think it's worth the time to write your own simple framework and utilize libraries where appropriate (like db libraries, formidable, and websocket.io).
Rails is over. It's a bloated meta framework that requires enormous amounts of peripheral knowledge to understand.
I thought the same about Express the beginning but as I learned my way thru it I found it very simple indeed. You can build a Web App on a couple lines and never worry about protocols and stuff. Easily integrated with Websockets using Socket.io too.
About Rails, I think that seems like there is too much happening behind the curtains with magic. Express seems more objective.
when i started learning node.js i went straight to Connect since i felt Express was too bloated. best decision ever considering i was building APIs mostly at the time. i've found Connect to be pleasant to work with.
but if you're considering building regular web apps (even with APIs), Express is a good starting point, since you can always use Connect middleware and lots of examples out there.
Rails is over. It's a bloated meta framework that requires enormous amounts of peripheral knowledge to understand.