I chose Actionhero for a few reasons. Project layout was an initial standout — instead of wondering where all my routes would be stored (individual files) and then combining them “manually” somewhere, plus import order and initialization of other “API globals”, Actionhero is ready to write initializers and actions from the start. A complete Node server that is ready to go, without having to redefine or guess at project layout.
Built in WebSockets and TCP for server pushes plus “chat rooms” made it easy to get data to clients in real-time. Plus tasks, as mentioned. Also, the focus is on the API, which just fits the way I think about things. (Something like the ESB’s I’ve used from Java-world, though not a perfect description.)