There are two situations where I'd start another project in Node.js:
1) there's an unusual amount of logic shared between browser and server
2) a web layer needs to be isomorphic
Node hits a sweet spot for these, but it's not my choice any more for non-web servers like the micro-services that back up mobile and single page apps.
I abandon Node.js after a first project years ago because of the callback soup. I came back when promises promised an alternative. Now I run into situations where promises cascade up from a few async calls and affect every API built on top of them. Perhaps async/await will improve the situation.
If you have a synchronous function that suddenly needs to do something asynchronous, then everything that uses that function needs to become async too.
1) there's an unusual amount of logic shared between browser and server
2) a web layer needs to be isomorphic
Node hits a sweet spot for these, but it's not my choice any more for non-web servers like the micro-services that back up mobile and single page apps.
I abandon Node.js after a first project years ago because of the callback soup. I came back when promises promised an alternative. Now I run into situations where promises cascade up from a few async calls and affect every API built on top of them. Perhaps async/await will improve the situation.
I'm curious where Node.js fits for other people.