It's pretty difficult to consider that code for NodeJS that does any substantial amount of IO can be described by the word "nice" (though I realise I'm slightly rewording what you wrote).
Callbacks lead to horrible staircases of code which tend to look fugly, and infect all APIs everywhere. Things like promises make for slightly nicer looking code, and give you more choices from an API POV, but are still not brilliant. IMHO, the "fact" is that for nice looking code, which is intuitive and readable, you want to be able to write blocking code.
I just don't understand why people think that callback-based programming is necessary for good performance. Most sane languages with a good RTS and green threads will be able to match the performance of NodeJS for anything involving IO. And almost certainly lead to better looking code. The popularity of NodeJS I find most perplexing. Maybe most other languages do not have good RTS or green threads.