Having written nodejs for about an year I would never choose it again if I have given the choice.
* No Error handling. The process has to be restarted if something goes wrong.
* No thread local storage equivalent. As a result you can't do simple thing like differentiate log originated from different http requests.
* Callback makes the code unreadable
* Javascript has no real method or in other words 'this' is not attached to a function and is determined by way the function is called. So you have to wrap most of the callbacks with _.bind()
* Mixing callback, promise and event emitter api introduce lot of boilerplate code.
* No stacktrace. Debugging error is PITA
* No preemptive scheduling. So you have to be extra careful that you
never spend too much CPU time.