Not even close to unique. As I've said elsewhere, I haven't really got a problem with Node.js, but the hype is toxic. It has some nifty features but the standard hype-pack contains several lies about how unique Node.js is, or how performant it is. For the most part Erlang dominates it on all straight-up feature points, for instance, but it isn't Javascript. It very, very isn't Javascript, for both better and worse. But there are several languages that actually fail to block much better than Node.js.
In fact, Node.js isn't what I personally would call "non-blocking", as it only has the weakest form of it. Node.js has cooperative multitasking; writing an infinite loop still takes everything down. Erlang, Haskell, and a growing number of other languages have preemptive multitasking, while still having sane concurrency compared to lock-based threading; infinite loops are still bad but will only lock up that local-running-unit (thread, process, whatever). That's non-blocking; within reason (modulo bugs, deliberate hostile attempts, etc), nothing you do in one thread will block another.
If you need to shuffle various things around, Node.js is OK, but if you actually need to compute something that may take significant fractions of a second, you're going to have some sort of problem. Maybe that problem is bad latency on your other requests, maybe your problem is a sudden and bizarre need to chop up an otherwise-straightforward computation into many little pieces so other things get a chance to run which is easier said than done (chop too fine, lose performance, chop too coarse, lose latency on other responses, getting this right is very tricky), maybe you're going to have to manage worker OS processes, but it's going to poke out somewhere.
Again, I don't really have a problem with Node.js, but the hype needs to be taken out back and shot.