Single-threaded nature of  Node.js enables it to be used for event-driven and non-blocking servers. Also used for traditional web sites and back-end API services but was designed with real-time, push-based architectures in mind.