On that joyful note JavaScript execution ends, and libUV checks whether there is any watcher that can be activated, which means whether there is any internal handler. If there is no handler, the whole Node.js process gets finished, as well as the whole event loop, too. In our case, one watcher of this kind, in particular a port 3000 handler, was installed. That’s why a Node.js process is not going to finish, but will get a stand-by mode. It will stay in this mode until some reason to get activated occurs – for example, new input-output events.