Especially when you are coming from Java word, the first encounter with asynchronous style used in Javascript (or node.js) can be confusing. And of course there are several ways how to deal with it.
Another problem is inconsistent error handling however in node.js and chrome it seems to work fine.
Till now there is no obvious winner and maybe future will show.